套接口和标准IO

Unix的I/O函数包括read, write以及它们的变体recv, send等,这些函数围绕描述字工作。
执行I/O的另一种方法是标准I/O函数库,这个函数库由ANSI C标准规范,这些函数通常围绕流工作。

1,流和描述字的转换
 1)流转换为描述字 int fileno(FILE*);
 2)描述字转换为输出流和输入流。 FILE* fdopen(sockfd, 'w'); FILE* fdopen(sockfd, 'r');

2,使用标准IO可以对描述字进行操作,方法是先把描述字转换为IO流,然后对IO流进行操作。

3,存在问题
    标准IO流是有缓冲的,所以使用标准IO流来操作描述字可能不会立即对数据进行写入和读出。标准IO流有以下三类缓冲:
    1)完全缓冲 只有在下列情况才发生IO:缓冲区满,调用fflush,调用exit终止进程。缓冲区的通常大小为8192字节。
    2)行缓冲 只有在下列情况才发生IO:碰到换行符,调用fflush,调用exit终止进程。
    3)不缓冲 意味着每次调用标准IO输出函数都发生IO

    标准IO在Unix上的实现使用如下规则:
    1,标准错误输出不缓冲
    2,标准输入输出完全缓冲,除非指代终端设备,这种情况为行缓冲。
    3,其他IO流都是完全缓冲的,除非指代终端设备,这种情况为行缓冲。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值