ChinaUnix.net
相关文章推荐:

c fork函数详解

现在如果我想在不能用fork()的嵌入式系统中实现如下代码,有办法用vfork()实现吗? pid_t id; if(id = fork() > 0) do a; else if(id == 0) do b; 各位前辈指点下哈

by davycu - C/C++ - 2007-12-15 19:14:06 阅读(4064) 回复(8)

相关讨论

linux0.11内核初始化函数里调用了fork来创建子进程,但我想查该函数的具体定义。 在fork.c里并没找到此函数的定义 在unistd.h里找到 #define _syscall0(type,name) \ type name(void) \ { \ long __res; \ __asm__ volatile ( "int $0x80" \ // 调用系统中断0x80。 :"=a" (__res) \ // 返回值??eax(__res)。 :"" (__NR_ ##name)); \ // 输入为系统中断调用号__NR_name。 if (...

by xiaoQ008 - C/C++ - 2009-04-04 21:36:48 阅读(1849) 回复(8)

#include #include int glob=6; char buf[]="a write to stdout\n"; main(void) { int var; pid_t pid; var=88; char SS[1024]; if(write(SS,buf,sizeof(buf)-1)!=sizeof(buf)-1) printf("write error"); printf("before fork\n"); if((pid=fork())<0) printf("fork error"); else if(pid==0) { glob++...

by vidama - C/C++ - 2008-10-13 14:55:36 阅读(1324) 回复(3)

open(MYFILE,"url.txt")||die ; while(defined(my $url=)){ # my $url = $ur; my $pid = fork(); if (!defined($pid)) { print ("fork process failured!\n"); CORE::exit(0); } if ($pid) { my $content = get $url; die "Couldn't get $url" unless defined $content; CORE::exit(0); } else { $connect++; waitpid($pid,0); } } close(MYFILE); print "$con...

by jack-ni - Perl - 2008-05-28 12:09:37 阅读(1729) 回复(1)

在linux中,只有一个函数可以创建子进程:fork。 #include #include pid_t fork(void); 由f o r k创建的新进程被称为子进程( child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程I D。将子进程I D返回给父进程的理由是:因为一个进程的子进程可以多于一个,所以没有一个函数使一个进程可以获得其所有子进程的进...

by yutian - C/C++ - 2006-12-26 14:59:52 阅读(1463) 回复(3)

我的php的版本是 4。3。0, 但程序当中为什么不能用pcntl_fork函数?!谢谢! linux8。0

by zhizulin - PHP - 2007-08-16 11:29:54 阅读(5273) 回复(6)

这段代码 void main() { int pid; //section0 if ((pid = fork()) < 0) { //section1: } else if (pid == 0) { //section2: } else { //section3 } } fork以后子进程的入口点在什么地方? fork函数会调用exec 函数? 不是说exec会从main函数处开始执行?那section0不是有被执行一次? 请教,谢谢 ^_^

by stuff990 - C/C++ - 2003-11-28 21:25:17 阅读(1375) 回复(2)

5 int main() 6 { 7 pid_t pid; 8 if((pid=fork())<0) 9 { 10 printf("fork error\n"); 11 exit(1); 12 }else if(pid==0){ 13 printf("i'm child process\n"); 14 } 15 if(waitpid(pid,NULL,0)!=pid ) printf("waitpid error\n"); 16 return 0; 17 } 执行结果: i'm child process waitpid error ...

by coffee777 - C/C++ - 2009-08-06 16:33:16 阅读(6375) 回复(13)

#include ; #include ; #include ; using namespace std; int main() { pid_t pid; // if(pid = fork()< 0 ) // cout<<"fork error!"<

by dreamping - C/C++ - 2005-01-23 15:24:18 阅读(976) 回复(5)

大概流程是这样的,我在main函数调用某个函数(do_pipe), 在do_pipe函数里面,我fork了一个子进程, 然后子进程里面执行execvp,并且把结果利用dup2重定向到管道的一端,然后从父进程从管道另一端接收数据作为输入。大致如下: int do_pipe() { pid_t pid; if(pid==0) { dup2(); execvp(); } else { wait(); dup2(); execvp; } return 0; } 此...

by songna - C/C++ - 2008-11-10 18:28:02 阅读(1746) 回复(5)

原程序如下: main() { if(fork()!=0) { printf("fork!=0\n"); sleep(2); exit(0); } else { printf("fork=0\n"); sleep(2); exit(0); } } 运行后显示如下: fork=0 fork!=0 不因该这样啊,因该只会显示一个分支的啊,请高手指点下。

by SAS - C/C++ - 2007-04-21 20:15:37 阅读(1426) 回复(6)