Ich bin sehr Neuling über Rohre und ich möchte ein kleines Programm für das Verständnis und lernen darüber zu entwickeln. Meine Idee besteht darin, Kommando Shell cat to wc mit c zu kommunizieren. Ich habe ein sehr einfaches Programm gemacht, das eine existierende Datei verwendet (test.txt zum Beispiel), aber im Moment kann ich nur den Inhalt anzeigen. Ich möchte nur die Anzahl der Zeilen um eine bestimmte Datei zählen.Transformiere cat file.txt | wc -l Programmcode c
Ist dies möglich? Oder muss ich vielleicht eine andere Option machen? Hier ist mein Grundcode:
int main(int argc, char *argv[]) {
pid_t pid;
int fd[2];
pipe(fd);
pid = fork();
if (pid == -1) {
perror("fork");
exit(1);
}
if (pid == 0) {
/* Child process closes up input side of pipe */
close(fd[0]);
execlp("cat", "cat", "test.txt", NULL);
//I don't know how communicate this process with the other process
} else {
/* Parent process closes up output side of pipe */
close(fd[1]);
execlp("wc", "wc", "-l", NULL);
}
}
können Sie eine der Antworten akzeptieren, indem Sie auf das graue Häkchen unter der Punktzahl klicken. – chqrlie