次のLinuxコマンドを実行する必要があります:ls -la |並べ替え| -lトイレと私はexecの機能を使用する必要が...ここに私のコードです:C Linuxコマンドとパイプでexecを使用する方法
x = fork();
char * args[] = { "ls", "-la" , "|", "sort" , "|" , "wc", "-l" };
if(x == 0){ //Father
//Dad validations
}else{
execlp(args[0],args[0], args[1],args[2],args[3],args[4],args[5],args[6], NULL);
perror("Exec error\n");
exit(1);
}
コマンドが正常に分離動作しますが、私はそれらを一緒に入れたとき、私は、このエラーメッセージが出ます:
ls: cannot access |: No such file or directory
ls: cannot access sort: No such file or directory
を私はエラーがLinuxパイプにあると思う。
ありがとう!代わりに、次の引数を実行
'exec(lp)'はシェル構文を想定していないため、プロセス名とその引数が必要です。 –
でも、Linuxコマンドでexecを使用することができます。これは私のものです。 – Joseph