问个execl函数的有关问题

问个execl函数的问题?
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
int main()
{
int pid;
pid = fork();
if(pid == 0)
{
execlp("ls","-l>123",(char*)NULL);
exit(0);
}
wait(0);
printf("hello world!\n");
return 0;
}
我想用ls -l命令重定向到123文件里,这写法有什么不对,应该怎么写?


ls程序并不理解>123的意思,楼主可以参考下这个链接http://topic.csdn.net/u/20091210/12/c4fc9cae-3d27-430c-9067-b03f636fbc33.html


if(pid == 0)
{
freopen("123", "w", stdout);
execlp("ls","ls", "-l",(char*)NULL);
exit(0);
}


直接用system就行了……system会创建新进程调用shell来执行这个程序,重定向是shell实现的。
你这样写反而复杂了。
当然你用popen打开"ls -l",并fread其结果也是可以了。


ls不能解释重定向,重定向要交给bash解释,"/bin/bash","ls","-l",">","123"

问个execl函数的有关问题

相关文章:

你感兴趣的文章:

标签云: