2012年6月27日星期三

linux系统编程:fork()函数用法示例

 
 

satan 通过 Google 阅读器发送给您的内容:

 
 

于 12-6-27 通过 averiany涂鸦馆 作者:averainy

原型:

#include <sys/types.h>

#include <unistd.h>

pid_t fork(void);

成功调用fork()会创建一个新的进程,返回值为0,失败返回-1,子进程的pid为0,子进程的ppid设置为父进程的pid.

fork()函数的实例

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h>  int main(int argc, char * argv[]) {         pid_t pid;         pid=fork();         printf("pid=%d\n",pid);         if(pid==-1)                 perror("fork");         if(pid==0){                 printf("pid=%d\n",pid);                 int ret;                 ret=execlp("ls","ls",NULL);                 if(ret==-1){                         perror("execv");                         exit(EXIT_FAILURE);                 }                 printf("ret=%d\n",ret);                 exit(0);         }         if(waitpid(pid,NULL,0)<0)                 perror("waitpid");         if(pid>0)                 printf("pid=%d\n",pid);  }
上面的例子是fork一个子进程,用exec函数调用系统命令ls,将当前目录的文件打印到屏幕, 调用waitpid等待子进程结束,打印父进程的pid.
如果不用waitpid的话,父进程的pid是打印不出来的.
 

 


本文作者:averainy | 本文地址: 固定链接 | 我的腾讯微博|我的google+
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明

相关日志


 
 

可从此处完成的操作:

 
 

没有评论:

发表评论