具体来说,read()函数的返回值有以下几种情况: 1.如果读取成功,read()函数会返回读取的字节数。这个值应该是非负的,表示成功读取了多少字节的数据。 2.如果读取达到文件末尾,read()函数会返回0,表示已经读取完了文件的所有数据。 3.如果读取失败,read()函数会返回-1,表示读取出现了错误。这时可以通过查看全局变...
函数原型为:ssize_t read(int fd, void *buf, size_t count);其中,fd为文件描述符;buf表示读出数据缓冲区地址;count表示读出的字节数。返回值:若读取成功,则返回读到的字节数;若失败,返回-1;若已达到文件尾,则返回0。 这个函数的功能是从文件中读取指定数量的字节到缓冲区中。如果读取成功,函数会返回实际...
my_read(int fd, char *ptr) { if (read_cnt <= 0) { again: if ( (read_cnt = read(fd, read_buf, sizeof(read_buf))) < 0) { if (errno == EINTR) goto again; return(-1); } else if (read_cnt == 0) return(0); read_ptr = read_buf; } read_cnt--; *ptr = *read_...
如果在open一个设备时指定了O_NONBLOCK标志,read/write就不会阻塞。以read为例,如果设备暂时没有数据可读就返回-1,同时置errno为EWOULDBLOCK(或者EAGAIN,这两个宏定义的值相同),表示本来应该阻塞在这里(would block,虚拟语气),事实上并没有阻塞而是直接返回错误,调用者应该试着再读一次(again)。这种行为方式称为轮询...
read函数返回值: 大于0:成功读取的数据长度(Byte); 等于0:该 socket 已经关闭; 等于-1:异常发生,包括但不限于以下几种: 超时,errno=11; 连接异常关闭(RST),errno=104; 主动关闭socket后再去 read,errno=9; 非阻塞模式下的没有数据时,errno=11。
1、可以事先检查一下传递给 read() 函数的 fd 是否合法,即在 'if ((nread = read(fd,myBuff2,strlen(myBuff2)))>0)' 之前判断 if ( fd == NULL ) printf("出错啦!\n");2、read()函数是文件操作函数,在c语言中很重要。函数的返回值如下:(1)如果成功,返回读取的字节数;(...
read函数的原型如下所示: ``` ssize_t read(int fd, void *buf, size_t count); ``` 其中,fd表示文件描述符,buf表示读取数据的缓冲区,count表示读取的字节数。read函数会从文件描述符fd中读取count个字节的数据,并保存到buf中。成功读取时,返回实际读取的字节数,失败时返回-1。
read 函数从打开的设备或文件中读取数据。 #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 参数 count 是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位...
返回值 read函数的返回值有以下几种情况: 成功读取: 返回值是一个正整数,表示实际读取的字节数。 如果读取的字节数少于请求的字节数,可能是因为到达文件末尾(EOF)或者发生了部分读取。 到达文件末尾(EOF): 如果读取到文件末尾且没有更多数据可读,read返回0。 错误情况: 如果发生错误,read返回-1,并设置errno以指示...