linux socket网络编程有关read的问题

linux socket网络编程有关read的问题,第1张

linux socket网络编程有关read的问题

接收缓存区内没有数据送进来,read会阻塞,直到数据送进来或者对面主机发送FIN。close函数会发送FIN以及EOF,read函数读取EOF会返回0;用shutdown函数只关闭输出流也是一样的,会发送EOF。

EOF是什么呢?如果EOF是一个特殊字符,那么假定每个文本文件结尾都有一个EOF(也就是-1),还是可以做到的,因为文本对应的ASCII码都是正值,不可能有负值。但是,二进制文件怎么办呢?怎么处理文件内部包含的-1呢?在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。至于系统怎么知道文件的结尾,资料上说是通过比较文件的长度。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5714999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存