Linux - obsługa procesów (fork(), wait(), execlp())

0

Witam. Mam problem z jednym z zagadnień.
Mój program ma wypisać słowo "Początek", później zawartość bieżącego katalogu, a na końcu słowo "Koniec".
Nie wiem, w jaki sposób wywołać funkcję execlp, by wyświetlić słowo koniec, ponieważ program kończy się wyświetlaniem zawartości i tyle.
Jestem początkującym programistą, proszę o pomoc!

#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h> 

main(int argc, char * argv[])
{
pid_t pid;
printf("poczatek\n");

if (pid = fork()== 0 ){
execlp("ls", "ls", "-a", NULL);
perror ("blad uruchomienia programu");
exit(1);
}

wait(NULL);
printf("Koniec\n");
} 
0

zamień

if (pid = fork()== 0 ) 

na

if ( ( pid = fork() ) == 0 ) 
0

Już poprawione. A jak zmodyfikować execa?

0

Po poprawieniu tej jednej linijki u mnie działa.

0

Problem rozwiązany. Wystarczyło dołączyć #include <sys/wait.h> i poszło

1 użytkowników online, w tym zalogowanych: 0, gości: 1