linux获取进程id函数?
linux C中,获取当前进程id 函数为getpid() ;
头文件:#include <unistd.h> 函数原型:pid_t getpid(void); 函数说明:getpid ()用来取得目前进程的进程id,许多程序利用取到的此值来建立临时文件, 以避免临时文件相同带来的问题。 返回值:目前进程的进程id 范例 #include <stdio.h> #include <unistd.h> main() { printf(“pid=%d “, getpid()); } 执行: pid=1494 /*每次执行结果都不一定相同 */
linux的日志文件main是什么意思?
哦,说一下
bin : 默认程序安装目录 跟win下的C:/program 类似
boot : 系统启动用到的东西都在这里 启动的配置文件 以及 内核镜像
dev :设备节点文件 linux所有的硬件最后用户看到的都还是文件 ,一般称为设备文件
etc : 系统的一些配置文件存在这里
home:用户的家目录 ,跟win下的D盘有点类似
lib : 库文件的存放地
media :系统自动挂载设备会选择的地方
mnt :手动挂载时候,喜欢选择的地
有不懂的再说额
linux waitpid函数?
waitpid函数
作用同wait,但可指定pid进程清理,可以不阻塞。
pid_t waitpid(pid_t pid, int *status, in options); 成功:返回清理掉的子进程ID;失败:-1(无子进程)
特殊参数和返回情况:
参数pid:
> 0 回收指定ID的子进程
-1 回收任意子进程(相当于wait)
0 回收和当前调用waitpid一个组的所有子进程
< -1 回收指定进程组内的任意子进程
返回0:参3为WNOHANG,且子进程正在运行。
注意:一次wait或waitpid调用只能清理一个子进程,清理多个子进程应使用循环。
对函数fun的调用语句?
未定义行为
估计很多人好奇,这种情况下会返回什么值呢,于是各种未死心的猜测,但没有任何道理。
在linux os下,x86 i386 abi 定义了函数返回类型为int时通过eax寄存器来传递返回值。
在fun函数里面,由于没有return语句,所以在ret指令返回时,eax的值是不确定的,视近一次往它里面写什么值而定。
而在main函数,它才不管被调用函数有没有正确return,事实上它无法知道。main函数只能根据abi标准,从eax里拿返回值。
至于具体这个场景下,eax值是多少,没人知道。
关于Linux线程pthread_join的用法?
Linux系统pthread_join用于挂起当前线程(调用pthread_join的线程),直到thread指定的线程终止运行为止,当前线程才继续执行。案例代码:通过Linux下shell命令执行上面的案例代码:子线程还没有执行完毕,main函数已经退出,那么子线程也就退出了,“pthread_join(pth, NULL);”函数起作用。