Я пытаюсь сделать именованный канал на c под linux с помощью команды mkfifo. Но когда я запускаю программу, я либо получаю «нет такого файла или каталога» ошибку или абсолютно ничего (консоль ничего не отображается)Программа работает mkfifo не работает
Вот мой код:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#define MAX_LINE 80
int main(int argc, char** argv) {
int create;
//mkfifo("/tmp/myfifo", 0666);
create = mkfifo("tmp/myfifo", 0666);
if (create==-1)
{
printf("error%s", strerror(errno));
}
char line[MAX_LINE];
int pipe;
pipe = open("/tmp/myfifo", O_WRONLY);
if (pipe==-1)
{printf("error");
}
printf("Enter line: ");
fgets(line, MAX_LINE, stdin);
write(pipe, line, strlen(line));
sleep (100);
close(pipe);
return 0;
}
Я все еще учусь , и я не понимаю, что я делаю неправильно. Спасибо за вашу помощь.
См. [Ask], следуйте советам, отформатируйте и отформатируйте этот беспорядок правильно. – Olaf