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

系统调用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);

}


测试结果




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。