linux 中注意事项

来源:互联网 发布:C语言可以做哪些软件 编辑:程序博客网 时间:2024/05/01 20:09

(1)exit()与_exit()区别: _exit()直接使进程停止运行,清除器使用的内存空间,销毁其在内核中的各种数据结构。

   exit()函数在调用exit系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件,清理I/O缓冲(推荐使用这个函数)

(2)waitpid

      #include <sys/types.h>

      #include <sys/wait.h>

       pid_t  waitpid( pid_t pid, int *status,  int options );

       其中:pid取值不同,意义不同:

        pid > 0时, 只等待进程ID=pid的子进程,不管其他已经有多少子进程运行结束推出了,只要指定的子进程还没有结束,waitpid就会一直等下去;

        pid = -1时, 等待任何一个子进程退出,没有任何限制,此时waitpid 和wait的作用一摸一样;

        pid = 0 时, 等待同一进程组中的任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬;

        pid < -1时, 等待一个指定进程组中的任何子进程,这个进程组的ID等于pid的绝对值