����14-36 linux/include/sys/wait.h


  1 #ifndef _SYS_WAIT_H

  2 #define _SYS_WAIT_H

  3

  4 #include <sys/types.h>

  5

  6 #define _LOW(v)         ( (v) & 0377)          // ȡ���ֽڣ�8���Ʊ�ʾ����

  7 #define _HIGH(v)        ( ((v) >> 8) & 0377)   // ȡ���ֽڡ�

  8

  9 /* options for waitpid, WUNTRACED not supported */

    /* waitpid��ѡ�����WUNTRACEDδ��֧�� */

    // [ ע����ʵ0.12�ں��Ѿ�֧��WUNTRACEDѡ���������ע��Ӧ������ǰ�ں˰汾���������ġ� ]

    // ���³��������Ǻ���waitpid(pid_t pid, long *stat_addr, int options)��optionsʹ�õ�ѡ�

 10 #define WNOHANG         1      // ���û��״̬Ҳ��Ҫ���𣬲����̷��ء�

 11 #define WUNTRACED       2      // ����ִֹͣ�е��ӽ���״̬��

 12

    // ���º궨�������ж�waitpid()�������ص�״̬�֣���20��21�еIJ���*stat_loc���ĺ��塣

 13 #define WIFEXITED(s)    (!((s)&0xFF)       // ����ӽ��������˳�����Ϊ�档

 14 #define WIFSTOPPED(s)   (((s)&0xFF)==0x7F) // ����ӽ�����ֹͣ�ţ���Ϊtrue��

 15 #define WEXITSTATUS(s)  (((s)>>8)&0xFF)    // �����˳�״̬��

 16 #define WTERMSIG(s)     ((s)&0x7F)         // ���ص��½�����ֹ���ź�ֵ���ź�������

 17 #define WCOREDUMP(s)    ((s)&0x80)         // �жϽ����Ƿ�ִ�����ڴ�ӳ��ת����dumpcore����

 18 #define WSTOPSIG(s)     (((s)>>8)&0xFF)    // ���ص��½���ֹͣ���ź�ֵ��

 19 #define WIFSIGNALED(s)  (((unsigned int)(s)-1 & 0xFFFF) < 0xFF) // �������δ��׽�źŶ�

                                                                    // �����ӽ����˳���Ϊ�档

 20

    // wait()��waitpit()�����������̻�ȡ�����ӽ���֮һ��״̬��Ϣ������ѡ��������ȡ�Ѿ���ֹ��

    // ֹͣ���ӽ���״̬��Ϣ������������������������ӽ��̵�״̬��Ϣ���򱨸��˳���Dz�ָ���ġ�

    // wait()������ǰ���̣�ֱ�����ӽ���֮һ�˳�����ֹ���������յ�Ҫ����ֹ�ý��̵��źţ�

    // ��������Ҫ����һ���źž�����źŴ������򣩡�

    // waitpid()����ǰ���̣�ֱ��pidָ�����ӽ����˳�����ֹ�������յ�Ҫ����ֹ�ý��̵��źţ�

    // ��������Ҫ����һ���źž�����źŴ������򣩡�

    // ���pid= -1��options=0����waitpid()��������wait()����һ������������Ϊ����pid��options

    // �����IJ�ͬ����ͬ�����μ�kernel/exit.c,142��

    // ����pid�ǽ��̺ţ�*stat_loc�DZ���״̬��Ϣλ�õ�ָ�룻options�ǵȴ�ѡ�����10��11�С�

 21 pid_t wait(int *stat_loc);

 22 pid_t waitpid(pid_t pid, int *stat_loc, int options);

 23

 24 #endif

 25