Привет. Задали тут написать программу( в принципе я её написал = ) ), но в ней я использовал дочерние процессы, и они вроде как работаю, собственно в чем проблема, мне нужно что бы один и тот же дочерний процесс выполнялся два раза, до определённых действий и после них, но вся проблема в том, что по факту этот процесс (который дочерний) выполняется два раза уже после всех действий. Подскажите, как мне сделать то что я хочу? = )
Вот мой код:
/* 4 Написать программу, которая:
создает новый каталог в текущем каталоге;
записывает в него различные элементы;
осуществляет печать содержимого каталога, определяя тип каждого элемента;
удаляет и переименовывает отдельные элементы каталога и снова распечатывает его содержимое;
Создать элементы: 2 файла, 2 символических ссылки, 2 подкаталога; переименовать оба файла;
удалить по одному элементу.*/
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/sendfile.h>
#include <errno.h>
#include <termios.h>
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/wait.h>
int main (int argc, char* argv[]){
int mode_dir = 0760;
int mode_file = 0760;
mkdir ( "/home/demik/SPO/lab6", mode_dir );
creat ( "/home/demik/SPO/lab6/test1", mode_file );
creat ( "/home/demik/SPO/lab6/test2", mode_file );
symlink ( "/home/demik/SPO/lab6/new_test1", "/home/demik/SPO/lab6/link1" );
symlink ( "/home/demik/SPO/lab6/new_test2", "/home/demik/SPO/lab6/link2" );
mkdir ( "/home/demik/SPO/lab6/dir1", mode_dir );
mkdir ( "/home/demik/SPO/lab6/dir2", mode_dir );
if (fork()==0)
wait(0);
else
execl("/bin/ls", "ls","--color=never", "--file-type", "-Q", "/home/demik/SPO/lab6",NULL);
rename ( "/home/demik/SPO/lab6/test1", "/home/demik/SPO/lab6/new_test1" );
rename ( "/home/demik/SPO/lab6/test2", "/home/demik/SPO/lab6/new_test2" );
remove ( "/home/demik/SPO/lab6/new_test1" );
remove ( "/home/demik/SPO/lab6/dir1" );
remove ( "/home/demik/SPO/lab6/link1" );
if (fork()==0)
wait(0);
else
execl("/bin/ls", "ls","--color=never", "--file-type", "-Q", "/home/demik/SPO/lab6",NULL);
return 0;
}