Unix环境高级编程中,对read()函数作了如下定义:调用read函数从打开文件中读数据。#include <unistd.h>ssize_t read(int fd, void *buf, size_t nbytes);返回值:读到的字节数,若已到文件尾,返回0;若出错,返回−1如read成功,则返回读到的字节数。如已到达文件的尾端,则返回0。****************************************************************我想知道,对于一个文件,如果里面的数据大于定义的nbytes的话,是怎么样的?比如: man ls >ls.txt用read()和write()函数,将ls.txt里面的数据复制到copy.txt中其中butter[MAX](#define MAX 10)****************************************************************我的理解,ls的man手册中的数据要比定义的butter[MAX]数据大的多,那为什么用下面程序就可以进行复制数据?————————————————————————————//省略int i,j,n;i=open(argv[1],O_RDONLY);j=open(argv[2],O_WDONLY|O_CREAT|O_TRUNC,664);//省略判断之类的n=read(i,butter,MAX);while(n>0){ write(j,butter,n);}close(i);close(j);————————————————————————————
蝴蝶刀刀
慕容708150