Ich muss die folgenden Linux-Befehle ausführen: ls -la | sortieren | wc -l und ich habe exec-Funktionen verwenden ... Hier ist mein Code:C wie exec mit Linux-Befehlen und Pipes zu verwenden
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);
}
Die Befehle richtig getrennt arbeiten, aber wenn ich sie mir diese Fehlermeldung zusammen:
ls: cannot access |: No such file or directory
ls: cannot access sort: No such file or directory
Ich schätze, der Fehler ist in der Linux-Rohr
Vielen Dank für Ihre Zeit!
'exec (lp)' erwartet keine Shell-Syntax, es erwartet einen Prozessnamen und seine Argumente. –
aber Sie können immer noch exec mit Linux-Befehlen verwenden ... und das ist was ich wat – Joseph