Сделал всё через fifo. Возникла проблема, когда передаю данные в программу,то программы останавливается. Вываливается сообщение [1]+ Stopped. Это если запустить сервер так: ./server &
А если запустить в разных терминалах то всё без проблем работать будет.Вот программа принимающая сообщение (server):
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#define my_fifo "/tmp/test.fifo"
int main()
{
char buf[128];
umask(0);
mknod(my_fifo, S_IFIFO | 0666, 0);
int fp = open(my_fifo, O_RDWR);
while(1)
{
if(read(fp, &buf, sizeof(buf)) != -1)
printf("BUF: %s\n", buf);
}
close(fp);
return 0;
}
Программа передающая сообщение:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#define my_fifo "/tmp/test.fifo"
int main(int argc, char **argv)
{
int fp = open(my_fifo, O_RDWR);
char *buff = "Hello, world!";
write(fp, &buff, strlen(buff));
close(fp);
return 0;
}