免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1821 | 回复: 13
打印 上一主题 下一主题

进程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-18 17:18 |只看该作者 |倒序浏览
请问:父进程创建一个子进程,怎样才能保证父进程先执行呢?
用sleep()可以,但它的参数必需是秒,请问有微秒级的等待函数吗?

论坛徽章:
0
2 [报告]
发表于 2003-12-18 17:19 |只看该作者

进程问题

usleep()

论坛徽章:
0
3 [报告]
发表于 2003-12-18 17:23 |只看该作者

进程问题

多谢!
除了让子进程等待外,还有其他的方法吗?

论坛徽章:
0
4 [报告]
发表于 2003-12-18 17:25 |只看该作者

进程问题

用select也可以做到,不过不如usleep
还有一种做法是子进程等父进程发一个信号。

论坛徽章:
0
5 [报告]
发表于 2003-12-18 19:17 |只看该作者

进程问题

原帖由 "goodgf" 发表:
请问:父进程创建一个子进程,怎样才能保证父进程先执行呢?
用sleep()可以,但它的参数必需是秒,请问有微秒级的等待函数吗?


用秒级的等待也未必可以保证父进程先运行,更不用说微妙级的等待了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-12-18 19:29 |只看该作者

进程问题

觉得等待信号比较可靠。

论坛徽章:
0
7 [报告]
发表于 2003-12-19 15:42 |只看该作者

进程问题

关于用信号来实现,我试了一下。父进程创建子进程后,我用pause()让子进程等待,然后父进程用kill()向子进程发一个信号,但我试了好几个信号,有的直接让子进程中止了,而有的根本不能中止pause(),子进程还在那里等。我的本意是要让子进程的pause返回,然后执行pause后的语句。请问用什么信号,怎么处理ne

论坛徽章:
0
8 [报告]
发表于 2003-12-19 15:56 |只看该作者

进程问题

知道了,要给那个信号设一个处理函数pause才会返回。

论坛徽章:
0
9 [报告]
发表于 2003-12-19 16:34 |只看该作者

进程问题

一般是用SIGUSR1或SIGUSR2

论坛徽章:
0
10 [报告]
发表于 2003-12-19 17:24 |只看该作者

进程问题

其实,我发觉这种方法不一定好。我刚才试验的时候有这么一种情况:如果父进程的信号发的过快,子进程好像没得到这个信号,pause()并不返回。但是,我如果让父进程sleep(10),然后再kill(child_pid,SIGUSR1),子进程的pause()返回,继续执行下面的语句。这就让人很不爽了,父进程要在什么时候发信号才能保证子进程的pause()返回呢?各位可以试一下!另外,请问一下,在Linux下有不有哪个函数可以判断一个文件存不存在,不用fopen返回-1判断,因为它返回-1不一定是文件不存在!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP