QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 912|回复: 1

如何得到system()调用结束的标记

[复制链接]
发表于 2002-12-9 10:27:12 | 显示全部楼层 |阅读模式
我用system()函数调用一个rpm包的安装,但是我不知道该system()调用何时结束,因为执行完这个模块,后面还有代码段要执行,且必须等rpm安装结束才能进行。我尝试过用进程等待,和多线程,但不得其法,望各位大虾对小弟指点一二,不胜感激。
【code】
void install()
{
      char install[100];
      sprintf(install. "rpm -i *.rpm &")
      system(install);
     printf("finish?\n");
}
【/code】
发表于 2004-12-10 21:23:12 | 显示全部楼层
因为system是通过调用fork、exec、waitpid来实现的,所以system的返回值可以指明这三者出现的错误:
1. 返回 -1说明:fork失败或waitpid返回一个错误(但不是EINTER)
2. 127 exec失败
3. 成功:返回shell终端状态(和waitpid成功一样)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 23:30 , Processed in 0.072124 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表