wp网站做404,煤炭建设行业协会网站,国家备案网查询系统,网站建设企业模板丫前提#xff1a;本文是基于Linux系统下的学习 用户态的进程是如何组织的呢#xff1f;所有的用户态进构成了一棵树。进程树。 进程树的树根是init.也就是1号进程。是用户态进程的祖宗进程。如何查看进程树#xff1f;pstree 进程之间的关系 父子进程和兄弟进程查看进程的信息…前提本文是基于Linux系统下的学习 用户态的进程是如何组织的呢所有的用户态进构成了一棵树。进程树。 进程树的树根是init.也就是1号进程。是用户态进程的祖宗进程。如何查看进程树pstree 进程之间的关系 父子进程和兄弟进程查看进程的信息ps -aux实时查看进程的使用情况 top 如何创建一个进程fork(2) 可以创建一个子进程。#include unistd.hpid_t fork(void);功能创建一个子进程。函数的调用者是父进程新创建的进程是子进程参数void返回值成功 父进程中返回子进程的pid 子进程中返回0失败 父进程中返回-1. errno被设置 子进程创建失败 进程的终止 return和exit(3) return 只是从函数调用中返回。结束了函数的执行。在main函数中返回并没有结束进程 exit(3) 这个函数被调用的时候结束当前进程。 无名管道和有名管道 无名管道--应用于具有亲属关系的进程间通信 pipe(2) 创建无名管道 pipefd[0] 指向读端pipefd[1]指向写端 1 //无名管道必须是带有亲属关系的 父子or兄弟2 //无名管道实现进程间通信3 #include stdio.h4 #include unistd.h5 #include string.h6 #include stdlib.h7 int main(){8 char buf[128];9 char* msghello,father\n;
10 int pfd[2];
11 //创建无名管道
12 int ppipe(pfd);//pfd[0] read; pfd[1] write
13 if(p-1){
14 perror(pipe);
15 return -1;
16 }
17 //创建子进程
18 pid_t pidfork();
19 if(pid-1){
20 perror(fork);
21 return -1;
22 }
23 if(pid0){//son
24 close(pfd[0]);//关闭读
25 write(pfd[1],msg,strlen(msg));
26 close(pfd[1]);
27 exit(0);
28 }
29 else{//father
30 close(pfd[1]);
31 int rread(pfd[0],buf,128);
32 write(1,buf,r);
33 close(pfd[0]);
34 wait(NULL);
35 }
36 return 0;
37 } 有名管道其实就是一个文件这个文件没有内容只是起到一个桥梁的作用 mkfifo(3) 1 //mkfifo.c2 //创建管道文件3 #include stdio.h4 #include sys/types.h5 #include sys/stat.h6 7 int main(int argc,char* argv[]){8 int mkmkfifo(argv[1],0644);9 if(mk-1){
10 perror(mkfifo);
11 return -1;
12 }
13 return 0;
14 } //fifo_w.c
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include string.h
int main(int argc,char* argv[]){char* msghello.read\n;//打开管道文件int fdopen(argv[1],O_WRONLY);if(fd-1){perror(open);return -1;}//向管道文件中写write(fd,msg,strlen(msg));close(fd);return 0;
} 1 //fifo_r.c2 #include stdio.h3 #include sys/types.h4 #include sys/stat.h5 #include fcntl.h6 7 int main(int argc, char* argv[]){8 char buf[128];9 int fdopen(argv[1],O_RDONLY);
10 if(fd-1){
11 perror(open);
12 return -1;
13 }
14 int rread(fd,buf,128);
15 write(1,buf,r);
16 close(fd);
17 return 0;
18 } 转载于:https://www.cnblogs.com/qiuyuwutong/p/9350020.html