关于c/c++里的exec系列函数调用的问题~~~在线等

Donnki 2009-04-08 05:16:56
请教下,关于exec系列函数,调用成功的时候不返回值,失败才返回-1,那这样的话程序一直没结束了啊?
比如有这样一段程序test.cpp:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

int main( void )
{
   int pid = fork();
if(pid == 0){
int status = execl("/bin/ls", "ls", "-l", (char * )0);
cout << "执行结果status : " << status << endl;
}else {
int task_id = pid;
cout << "PID : " << task_id << endl;
}
}

在unix下g++ test.cpp -o test
然后执行test,程序执行完ls -l命令后,就一直不会返回命令提示符$了,也找不到这个进程。。
请问这应该怎么解决啊???急~~~在线等高人解答~~~
...全文
289 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
if(pid == 0){
int status = execl("/bin/ls", "ls", "-l", (char * )0);
cout < < "执行结果status : " < < status < < endl;
//在这里最好exit退出子进程
}else {
int task_id = pid;
cout < < "PID : " < < task_id < < endl;
}
}
Donnki 2009-04-08
  • 打赏
  • 举报
回复
但是程序执行完了,没有返回命令提示符呀,要ctrl+c break出来才行
zbing0203 2009-04-08
  • 打赏
  • 举报
回复
执行完就结束了 当然找不到了

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧