永发信息网

linux系统调用大约有多少个

答案:2  悬赏:10  手机版
解决时间 2021-01-30 06:51
  • 提问者网友:箛茗
  • 2021-01-29 16:59
linux系统调用大约有多少个
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-01-29 18:03
linux是posix标准的操作系统。
至于有多少系统调用,自己可以查看一下posix标准 。
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-01-29 18:54
进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。 #include <unistd.h> #include <signal.h> #include <stdio.h> int pid1, pid2; main() { int fd[2]; char outpipe[100],inpipe[100]; pipe(fd); while((pid1=fork())==-1); if(pid1==0) //子进程1 { lockf(fd[1],1,0); sprintf(outpipe,"child 1 process is sending a message!"); write(fd[1],outpipe,50); //子进程1写数据到管道 sleep(5); lockf(fd[1],0,0); exit(0); } else //父进程 { while((pid2=fork())==-1); //创建子进程2 if(pid2==0) //子进程2执行 { lockf(fd[1],1,0); sprintf(outpipe,"child 2 process is sending a message!"); write(fd[1],outpipe,50); //子进程2向管道写数据 sleep(5); lockf(fd[1],0,0); exit(0); } else //父进程 { wait(0); //等待子进程结束,那就是子进程1先结束了,进程1先创建的写入数据后,延时5s就/结束了 read(fd[0],inpipe,50);//读管道数据 printf("%s\n",inpipe);//输出的是child 1 process is sending a message! wait(0); ////////////////////////////再次等待进程结束,这里等的就是进程2. read(fd[0],inpipe,50);//读管道数据 printf("%s\n",inpipe);//这里输出 child 2 process is sending a message! exit(0); } } } fork()函数的作用是创建一个进程。在应用程序调用fork()函数后,会创建一个新的进程,称做子进程,原来的进程称做父进程。从这以后,运行的已经是两个进程了,子进程和父进程都可以得到fork()的返回值。对于子进程来说,fork()函数的返回值是0,对于父进程来说,fork函数的返回的是子进程的进程号。如果创建进程失败,fork()函数会给父进程返回-1,这也是判断进程是否创建成功的依据
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯