C语言学习笔记-进程间通信
一.文件描述符表 # 数据流 0 键盘 1 屏幕 2 屏幕 描述符表的第一列是文件描述符号,另一列是它们对应的数据流,描述符表前三项恒古不变,0号标准输入,1号标准输出,2号标准错误输出,其他项要么为空,要么为链接进程打开的数据流。 怎样返回描述符 FILE * my_file = fopen("xxxx.txt", "r"); int p = fileno(my_file); 复制数据流 dup2(4,3); 将4号描述符的数据流连接到3号描述符 waitpid()函数在sys/wait.h头文件中,作用是等子进程结束后在继续运行父进程 waitpid(进程的pid, 这个变量用来保存进程信息(int指针变量),选项(一般设置为0,设置为0表示等待进程结束)) 在第二个参数中会保存一个值,它会记录进程完成情况,可以用WEXITSTATUS()来查看。 二.c语言中的错误处理代码 每次系统调用时都需要写错误处理代码,即出现错误停止程序,并报错。 exit()函数在stdlib.h头文件中,它可以让进程退出并设置退出状态值 错误处理函数的例子: void error (char * msg) { fprintf(stderr, "%s : %s\n", msg, strerror(errno)); exit(1); } 调用方法 pid_t pid = fork(); if(pid