main.c 825 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5. #include <errno.h>
  6. #include <sys/stat.h>
  7. #define FIFO_PATH "/bin/test_fifo"
  8. int main() {
  9. // 创建 FIFO
  10. if (mkfifo(FIFO_PATH, 0666) == -1 && errno != EEXIST) {
  11. perror("mkfifo failed");
  12. exit(EXIT_FAILURE);
  13. }
  14. printf("Opening FIFO in write mode...\n");
  15. // 尝试以非阻塞模式打开 FIFO 的写端
  16. int fd = open(FIFO_PATH, O_WRONLY|O_NONBLOCK);
  17. printf("fd: %d\n",fd);
  18. if (fd == -1) {
  19. if (errno == ENXIO) {
  20. printf("Error: No readers (ENXIO).\n");
  21. } else {
  22. perror("Failed to open FIFO");
  23. }
  24. } else {
  25. printf("FIFO opened successfully in write mode.\n");
  26. close(fd);
  27. }
  28. // 删除 FIFO
  29. unlink(FIFO_PATH);
  30. return 0;
  31. }