Which system calls can return EINTR or EAGAIN erro

2019-09-22 11:02发布

问题:

Which of the following system calls can return EINTR or EAGAIN/EWOULDBLOCK?

getsockname()
chdir()
bind()
fcntl()
listen()
setsid()
setsockopt()
socket()
stat()
unlink()
access()
accept()
open()
usleep()
dup2()
fork()
waitpid()
wait()
read()
write()

Some of these system calls return EINTR or EAGAIN on error (by the API of man pages).

Also some system calls exist that the API do not refer the EINTR/EAGAIN and however return these.

Please help.

回答1:

I have found the answer. This question should not have been deleted. As a rule only syscalls which are "slow" return EINTR. Slow things are terminal I/O and things which wait (select, wait, sleep, pause, etc).