日期:2014-05-16  浏览次数:20788 次

fork+exec的时候怎么重定向到文件输入
比如我想运行一个子程序
        pid=fork();
if(pid==0)
{       

execlp("./test",(char*)0);
return 0;
}
但是这个程序是标准输入 就是scanf 这种的 
如果直接shell执行可以这样 
./test<test.in 重定向到从文件读取数据 

但是
execlp("./test<test.in",(char*)0);
execlp("./test","<test.in",(char*)0);
execlp("./test","<","test.in",(char*)0);
这些都不行 
请问怎么解决

------解决方案--------------------
第一个参数是程序名。 重定向是shell的语法,用sh而不是你的程序。