具体回答如下:
UID是用户ID,PID是进程ID,PPID是父进程ID。
UID
UID 用户身份z明(User Identification)的缩写。UID用户在注册会员后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号。
比如,甲在论坛注册后获得UID23 那其后乙注册应该是UID24 但是也有可能是其他,这个是整个论坛系统自动分配的。还有一个可能,比如,甲注册了论坛,UID20 但是后来他退出了,就不是会员了,但是他的UID20就空着了,其后的人也不能得到UID20了。
PID
PID(Process Identification) *** 作系统里指进程识别号,也就是进程标识符。 *** 作系统里每打开一个程序都会创建一个进程ID,即PID。PID(进程控制符)英文全称为Process Identifier,它也属于电工电子类技术术语。PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是进程终止后PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
只要运行一程序,系统会自动分配一个标识。是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。
PPID
PPID Product Part Identification 产品料号识别码,便于产品追踪,并含有部分信息,一般的使用形式是产品包装上贴的一维码或二维码
计算机中代表当前进程的父进程IDPayload protocol identifier,在S1AP通信中标识此服务ID
不知道你是不是学习编程的,如果不是就没必要看了。1.PID是进程标识号,它是一个进程的唯一性标识。PPID是该进程父进程的进程标识号。
2.fork和exec和pid完全就是2件事情不能混为一谈。fork是一个linux库函数。他是用来创建一个新的进程。至于exec是一个系列函数,C标准库函数,用来改变进程上下文的。2者结合使用可以创建一个新的进程。
3.如果创建新的进程,一般是用fork,他会返回这个被创建进程的PID,你可以通过PID找到这个进程。
通过查看资料,发现一种比较简单的方法就是在代码中使用printf将当前线程的id打印出来。而这也分成两种情况:
1. 如果是pthread,则使用,
#include <pthread.h>
pthread_t pthread_self(void)
2. 如果不是pthread,即是由内核创建的线程,则使用,
#include <sys/types.h>
pid_t gettid(void)
获取线程所在的进程的id,方法如下:
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void)
pid_t getppid(void)
所以,我们在代码中使用如下的语句打印:
printf("\ntid=%lu, pid=%lu\n", gettid(), getpid())
这样就能获取当前代码所在的线程和进程了。
根据打印出来的进程的pid,获取进程名的方法是:
ls -lh /proc/pid/exe
lrwxrwxrwx 1 root root 0 Jan 1 20:48 /proc/pid/exe ->...
sh-3.2#
查看thread id的方法有:
1. sh-3.2# ps -efL | grep process,
ps命令指定-L命令选项可以用来查看进程下所包含的所有线程。
2. sh-3.2# ls -l /proc/pid/task/
查看进程下当前有哪些task,这些task指的就是线程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)