Witam
Mam do napisania trzy programy które komunikują się za pomocą potoku nazwanego mkfifo. Dwa z nich mają wysyłać liczby do trzeciego.Trzeci ma je sumować. Jestem na etapie wysyłania liczb do drugiego programu, lecz program nie działa poprawnie. Tekst po zmianie paru rzeczy wysyła poprawnie, lecz za nic nie chce wysłać liczb. Co może w nim być nie tak?
Program który wysyła liczby
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
int fd;
char * myfifo = "/tmp/myfifo";
mkfifo(myfifo, 0666);
fd = open(myfifo, O_WRONLY);
int i=10;
write(fd, i, 1);
close(fd);
unlink(myfifo);
return 0;
}
Program który je odbiera
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
int fd;
char * myfifo = "/tmp/myfifo";
int buf;
fd = open(myfifo, O_RDONLY);
read(fd, buf, sizeof(int));
printf("Received: %d\n", buf);
close(fd);
return 0;
}