标签: c sockets
我可以将open open返回的文件描述符绑定到套接字吗?
我正在尝试做类似的事情,
filefd = open("path",O_RDWR); ... bind (filefd, (struct sockaddr *) &servaddr, sizeof(servaddr)); connfd = accept (filefd, (struct sockaddr *) &cliaddr, &clilen);
为什么accept调用返回-1?
答案 0 :(得分:3)
从应用程序的角度来看,区别在于您如何创建和使用描述符。一些系统调用可以采用任何类型的描述符,而其他系统调用则需要特定类型的描述符。
如果您检查错误,那么bind调用也会返回-1。当系统调用返回-1时,您应该检查errno以查看出现了什么问题。您可以使用strerror获取错误的可打印字符串,或perror直接打印错误。
bind
-1
errno
strerror
perror