ChinaUnix.net
相关文章推荐:

fork 子进程 不运行

请先看例,目的是2个进程(父,)用信号量进行互斥打印。 我想弄清楚,fork()后,进程到底从哪里开始执行。 如果按照书面理解,进程是父进程的克隆,那么为什么只看到一个“Set sem init!\nBefore dowork()!”?谢谢 代码如下: #include ; #include ; #include ; #include ; #define COUNT 10 sem_t g_sem; void dowork(void) { pid_t child; if((child = fork()) == -...

by freedomi - C/C++ - 2005-07-29 11:56:39 阅读(4560) 回复(14)

相关讨论

小弟最近在写AIX环境下的c程序,用到进程,代码如下: …… for(;;){ if ((childpid = fork())<0) { printf("能进行fork\n"); tInt_RetCode = -1; goto ExitHere; } else if (childpid==0) { tInt_RetCode = srvM( i, ptsDate ); exit(0); } sleep(6); } …… 现在的问题是:程序运行后,查看系统进程,出现了很多进程。程序关闭后,这些default进程也消失了。 请教一下:为什...

by lxorb - AIX - 2006-08-09 17:59:27 阅读(1162) 回复(1)

#include ; #include ; #include ; void main(void) { int i; printf("\nInitial process PID%6d\t PPID%6d\t GID6d\n",getpid (),getppid(),getpgid(0)); for(i = 0;i<3;++i) if(fork() == 0) printf("new process PID%6d\tPPID%6d\tGID%6d\n",getpid(),getppid(),getpgid(0)); } 他的输出如下: Initial process PID 15...

by benqing - C/C++ - 2004-04-29 09:34:06 阅读(2029) 回复(12)

平台:linux7.2 我用fork()创建了一个进程进程处理完后我用exit(0)退出,却发现进程用ps -ef|grep 进程名,还是能看到?怎么回事?如何做到进程退出后用ps -ef|grep 进程名,进程在上面?

by jenson0015 - Linux论坛 - 2004-08-24 19:46:50 阅读(1597) 回复(8)

大概流程是这样的,我在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 阅读(1745) 回复(5)

#include #include #include"apue.h" #include"unix_err.h" int glob = 6; char buf[] = "a write to stdout\n"; int main() { int var; pid_t pid; pid_t pid_child; var = 88; if(write(STDOUT_FILENO,buf,sizeof(buf)-1) != sizeof(buf)-1) { err_sys("write error"); } printf("before fork\n"); if( (pid=fork()) < 0 ) { err_sys("fork error"); } else if(pid == 0) { if( (...

by fan2290 - C/C++ - 2006-12-21 10:31:59 阅读(3560) 回复(12)

我试了一下可以,想确认一下。。。 如果这样做的话有没有什么问题,需需要注意什么? 谢谢

by zjpangxie - C/C++ - 2005-02-17 11:48:59 阅读(993) 回复(2)

如果我单独运行一个child程序的话,大概只要花1秒中就可以跑起来,如果我从另外一个程序用fork一个进程然后用execl调用child程序的话,就要花3秒左右才可以跑起来。 我想问一下,为什么要多这两秒钟,主要的时间花在什么地方,怎样才可以提高速度? 谢谢

by whshuai - GUI编程 - 2008-10-23 22:10:35 阅读(2291) 回复(1)

使用的是标准的tcp server模型,fork一个进程来提供服务。 发现每个进程结束后,在ps中还是可以看见,使用kill -9 xxx还是能杀掉 该如何解决? 环境是redhat 8,g++编译。 另外问一句,ps查看,进程提供服务的时候,名称显示是正常的,但结束后, 进程死,看到的是用中括号括起,还添加了[code];,如:[server_fork ;][/code]

by flytod - C/C++ - 2004-04-01 19:20:34 阅读(2940) 回复(4)

平台:redhat7.2 我用fork创建出一个进程进程处理完事务后要退出,我用exit(0)来退出进程,但发现ps -ef|grep 进程名时,进程仍然看到, 请问要怎样才能进程退出后,ps -ef|grep 进程名看进程 对了,我父进程能退出。

by jenson0015 - C/C++ - 2004-08-21 20:59:09 阅读(2231) 回复(3)

我用init进程fork了一个进程后,但是我fork进程能输出信息到终端,见到init源码中讲标准输入输出都已经关闭: close(1); close(2); close(0); 请问如何才能讲我进程中的输出信息打印到终端?

by hula001 - BSD - 2009-03-24 11:03:27 阅读(1339) 回复(1)