JF
#include <unistd.h>
int exist(char *filename) {
return access(filename, F_OK);
}
int check() {
struct stat st;
if (access("tmpfifo", R_OK) == -1) {
printf("Error: ошибка во время открытия для чтения файла!\n");
}
if (access("tmpfifo", W_OK) == -1) {
printf("Error: ошибка во время открытия для записи файла!\n");
}
if (stat("tmpfifo", &st) == -1) {
printf("Error: ошибка во время выполнения stat, зовите собак!\n");
}
if (st.st_size == 0) {
return 0;
}
return 1;
}
int openffr() {
int fd = open("tmpfifo", O_RDONLY);
if (fd == -1) {
printf("Error: ошибка во время открытия для чтения файла!\n");
return -1;
}
return fd;
}
int main() {
for (;;) {
if (exist("tmpfifo") == -1) {
if (mkfifo("tmpfifo", 0644) == -1)
printf("Error: ошибка во время создания файла-FIFO!\n");
}
if (check == 0) {
int fd = openffr();
write(fd, "Hi", 2);
}
}
return 0;
}
