免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 蓝色键盘
打印 上一主题 下一主题

fork、exec系列与system、popen区别 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2003-06-27 14:35 |只看该作者

fork、exec系列与system、popen区别

我没有试

现在还没有时间

如果你的不是这样那么请跟贴

论坛徽章:
0
22 [报告]
发表于 2003-06-27 15:11 |只看该作者

fork、exec系列与system、popen区别

啊,我现在明白了。
其实我前面的说法都错了。系统没有保持任何原进程的信息。

还是因为粗心没注意到fork后面实际上子进程就退出了。真不好意思。

论坛徽章:
0
23 [报告]
发表于 2003-06-27 15:28 |只看该作者

fork、exec系列与system、popen区别

在OCI程序里打开一个数据库连接以后再fork,子进程再关闭这个连接,这时候父进程也会断开。郁闷。 。。
可见fork以后父子进程的这种很隐蔽的关联很值得注意

论坛徽章:
0
24 [报告]
发表于 2003-06-27 16:15 |只看该作者

fork、exec系列与system、popen区别

是不是父进程非法操作啦

论坛徽章:
0
25 [报告]
发表于 2003-06-27 16:34 |只看该作者

fork、exec系列与system、popen区别

倒也没有非法操作,只是报了个操作失败。

论坛徽章:
0
26 [报告]
发表于 2003-06-27 16:52 |只看该作者

fork、exec系列与system、popen区别

可能是ORACLE对方的连接根据IP和端口来判断

FORK后两个进程使用的还是同一个连接
但是一个CLOSE时对端也会对应CLOSE 连接

论坛徽章:
0
27 [报告]
发表于 2003-06-27 16:53 |只看该作者

fork、exec系列与system、popen区别

不过这个问题确实应该注意

论坛徽章:
0
28 [报告]
发表于 2003-06-27 16:55 |只看该作者

fork、exec系列与system、popen区别

这个是否是因为socket在fork之后其中一个进程close而影响到另一个进程?
但我认为还有一种可能是OCI的实现方式是用一个类似于session id之类的东西,不管你是多少个进程,反正你用这个session id关闭了连接,那这个id就再不能用了

论坛徽章:
0
29 [报告]
发表于 2003-06-27 17:03 |只看该作者

fork、exec系列与system、popen区别

也有可能

论坛徽章:
0
30 [报告]
发表于 2003-07-06 12:54 |只看该作者

fork、exec系列与system、popen区别

unix高级环境编程里面的一个不带信号处理的system版本

  1. int system(const char *cmdline)
  2. {
  3.         pid_t pid;
  4.         int status;
  5.         if(cmdline=NULL)
  6.                 return (1);
  7.         if((pid=fork())<0)
  8.         {
  9.                 status=-1;
  10.         }else if(pid==0)
  11.         {
  12.                 execl("/bin/sh","sh","-c",cmdline,(char *)0);
  13.                 _exit(127);
  14.         }else
  15.         {
  16.                 while(waitpid(pid,&status,0)<0)
  17.                 if(errno!=EINTR)
  18.                         {status=-1;
  19.                          break;
  20.                         }
  21.         }
  22.         return(status);
  23. }
复制代码

可见在unix环境下,是需要shell的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP