Тема: параллельные процессы
Задание: Нужно создать два параллельных процесса. каждый осуществляется работу с одним и тем же файлом. Каждый процесс открывает файл. Один процесс пишет в файл, другой - читает из него. Что произойдет без включения блокировок?
Не очень получилось как-то, подскажите ,пожалуйста, как правильно...
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void) {
char filename[1000];
int fd_in, fd_out;
char buf[1024];
printf("enter file:");
gets(filename);
memset(buf, 0, 1024);
fd_in = open(filename, O_RDONLY);
fd_out = open(filename, O_WRONLY|O_CREAT);
fork();
sprintf(buf, " Hello, world!\n\r");
write(fd_out, buf, strlen(buf));
sleep(1);
memset(buf, 0, 1024);
while (read(fd_in, buf, 20) > 0) {
printf("%s", buf);
}
sleep(10);
}