不能同时调用两个execlp函数

陈诒亮 发布于 2014/06/19 08:53
阅读 164
收藏 0
/*************************************************************************
    > File Name: execlp_test.c
    > Author: ma6174
    > Mail: ma6174@163.com 
    > Created Time: Thu 19 Jun 2014 07:28:33 AM CST
 ************************************************************************/
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Running ps and ls with execlp:\n");

    execlp("ps", "ps", "ax", 0);

    printf("the ls :\n");

    execlp("ls", "ls", "-il", 0);

    printf("\nDone!\n");
}



在这个小测试程序里,第二个execlp函数不能使用!没有输出!如果注释掉地一个execlp函数,第二个可以正常输出!这是为什么啊!如果我要两个都同时输出,该怎么做!
加载中
0
魔神翼
魔神翼

execlp装载了ps程序执行,此时你原来的程序已经被覆盖了。

正确做法是先fork,用子进程执行ps,主进程再执行ls。

魔神翼
魔神翼
execlp执行失败才会继续执行后面的语句
返回顶部
顶部