我可以将 open 调用返回的文件描述符绑定到套接字吗?
我正在尝试做类似的事情,
filefd = open("path",O_RDWR);
...
bind (filefd, (struct sockaddr *) &servaddr, sizeof(servaddr));
connfd = accept (filefd, (struct sockaddr *) &cliaddr, &clilen);
为什么accept调用返回-1?
从应用程序的角度来看,区别在于创建和使用描述符的方式。某些系统调用可以采用任何类型的描述符,而其他系统调用则需要特定类型的描述符。
在你的情况下bind http://man7.org/linux/man-pages/man2/bind.2.html电话会返回-1
如果您检查了错误,也是如此。当系统调用返回时-1
你应该检查一下errno http://man7.org/linux/man-pages/man3/errno.3.html看看出了什么问题。您可以使用strerror http://man7.org/linux/man-pages/man3/strerror.3.html获取错误的可打印字符串,或者perror http://man7.org/linux/man-pages/man3/perror.3.html直接打印。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)