现在的位置: 首页 > 综合 > 正文

Linux底层文件访问—read系统调用

2018年03月18日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 评论关闭

系统调用read的作用是:从与文件描述符files相关联的文件里读入nbytes个字节的数据,并把她们放到数据区buf中。它返回实际读入的字符,这可能会小于请求的字节数。如果read调用返回0,就表示未读入任何数据,已到达了文件结尾。同样,如果返回的是-1,就表示read调用出现了错误。

#include <unistd.h>
<span style="font-family: Arial, Helvetica, sans-serif;">size_t read(int fildes, void *buf, size_t nbytes);</span>

下面这个程序test.c 把标准输入的前128个字节复制到标准输出。如果输入少于128个字节,就把它们全体复制过去。

#include <stdlib.h>

#include <unistd.h>


int main()

{
  
    char buffer[128];
  
    int nread;

  

    nread = read(0,buffer,128);
  
    if( nread == -1 )
    
        write(2,"A read error has occured\n",26);

   
    if( (write(1,buffer,nread)) != nread )
    
        write(2,"A write error has occured\n",27);

  

    exit(0);

}

测试结果

抱歉!评论已关闭.