Linux API/linux

SIGPIPE

구차니 2022. 10. 17. 17:56

mkfifo()를 이용하여 named pipe를 해보는데

받는 쪽이 사라지니 보내는 애가 갑자기 에러도 없이 죽어

gdb로 확인해보니 SIGPIPE가 전달되었고 그로 인해서 프로세스가 종료 된 것으로 보인다.

Program received signal SIGPIPE, Broken pipe.
0x00007ffff7af2104 in __GI___libc_write (fd=3, buf=0x7ffff76e1010, nbytes=3145728)
    at ../sysdeps/unix/sysv/linux/write.c:27
27      ../sysdeps/unix/sysv/linux/write.c: 그런 파일이나 디렉터리가 없습니다.

[링크 : https://jacking75.github.io/linux_socket_sigpipe/]

 

gdb 에서 무시하게 하려면 아래의 명령어를 입력하라고 한다.

handle SIGPIPE nostop pass pass

[링크 : http://egloos.zum.com/mirine35/v/5057019]