关于 linux 管道中 read 和 write的返回值问题

本文详细介绍了在管道(pipe)通信中read和write函数的使用方法及其返回值的意义。当调用read函数时,它会尝试从指定的文件描述符读取最多count个字节的数据到由buf指向的缓冲区中。如果成功,则返回实际读取的字节数,如果遇到错误则返回-1。对于write函数的行为和返回值解释也进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直不了解  在pipe中   read()和write()的返回值

然后 在 终端  用man 查找  可以 知道

@ubuntu:~/linux_c$ man read

SYNOPSIS
       #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);

DESCRIPTION
       read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf.

       If count is zero, read() returns zero and has no other results.  If count is greater than SSIZE_MAX, the result is unspecified.

<span style="color:#FF0000;">RETURN VALUE</span>
       On  success, the number of bytes read is returned (zero indicates end of file), and the file position is advanced by this number.  It
       is not an error if this number is smaller than the number of bytes requested; this may happen for example  because  fewer  bytes  are
       actually available right now (maybe because we were close to end-of-file, or because we are reading from a pipe, or from a terminal),
       or because read() was interrupted by a signal.  On error, -1 is returned, and errno is set appropriately.  In this case  it  is  left
       unspecified whether the file position (if any) changes.


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值