首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

问个execl函数的有关问题

2012-02-08 
问个execl函数的问题?#include stdio.h#include stdlib.h#include sys/types.h#include unistd.h#

问个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"

热点排行