进程线程记不住滴.txt

 

容易遗忘滴东东:
进程:
1. exec系列:
  1.通过给顶绝对路径去找哦
  2.在系统的环境变量中找(给个名字即可)
  3.在我们提供的环境变量数组中找(最后一个为0)

2.#include <sys/types>  <unistd.h>  fork() 返回0 ,表示是子进程哦。
 pid_t 类型,整型的啦,用于接收fork的返回值的。

3.#include <sys/wait.h>
 pid_t wait(int *jilu) 用于父进程等待子进程。 返回值子进程id,然后把状态写入到jilu变量中,我们可以通过宏来知道情况(意外终止,成功返回执行,等)(返回0表示成功。)

注意:等待不是说我一次你一次的等待,而是一开始我不管你,也不等你,知道遇见这个wait()函数开始,我才开始等你结束。

4. pid_t waitpid( pid_t pid,int *jilu ,int options);

信号:#include <signal.h>
sigint sigquit sigalrm sigkill .......sig_ign sig_def  忽略,默认处理。

注册:signal(sigint,abc);
实现:void abc(int sig){xxx}

5.kill(pid,sigint)发送信号
pause(); 把一个进程挂起,直到有一个信号过来。
使用信号并使进程挂起是linux程序设计中的一个重要部分。

6.一个健壮的信号接口: int sigaction( ing sig, const struct sigaction *act, struct sigaction *oact);
oact:把原来对该信号的动作写到它指向的位置。 act:指定信号处理动作哦。

struct sigaction act;
act.sa_handler=abc;
sigemptyset(&act.sa_mask);//信号屏蔽集,设置为空
act.sa_flags=0; //如果这是RESETHAND,则表示第二次signal调用时,重置其默认动作。
sigaction(SIGINT, &act , 0);

7.信号集:sigset_t
有相应的添加信号,删除信号,判断是否存在一个信号的一些函数的操作哦。

信号屏蔽字是指当前被阻塞的一组信号,他们不能被当前进程接收到。

你可能感兴趣的:(进程线程记不住滴.txt)