원자가 란 성공 또는 실패를 의미하며 아무 것도하지 않습니다. 여러 프로세스/스레드가 write(fd, buf, len)
를 호출하면 내가 socketpair(AF_LOCAL, SOCK_STREAM)
알고SOCK_SEQPACKET 원자에 쓸 수 있습니까?
이 원자되지는 write()
의 반환 값은 아마 > 0 && < len
이나 고장의 데이터를 발생합니다.
socketpair(AF_LOCAL, SOCK_SEQPACKET)
으로 생성 된 write(buf, len)
에서 sock_fd
까지 여러 프로세스/스레드가있는 경우 원자입니까?
나는 리눅스 설명서를 확인하고 len
이 PIPE_BUF
보다 작 으면 write/writev
이 원자 단위라는 것을 알리는 pipe()
에 대해 발견했다.
socketpair
에 대해 아무 것도 발견되지 않았습니다. 나는 테스트 코드를 작성하여 SOCK_SEQPACKET
이 원자적임을 알았고, 랜덤 길이 버퍼를 fd
에 쓰고 반환 값은 항상 -1
또는 len
입니다.