一、write系统调用
头文件:<unistd.h>
size_t write(int fd, const void*buff, size_t nbytes);
系统调用write的作用是:把缓冲区buff的前nbytes个字节写入与文件描述符fd关联的文件中,它返回实际写入的字节数。如果文件描述符有错或者底层的设备驱动程序对数据块长度比较敏感,该返回值可能会小于nbytes。如果这个函数返回0,就表示未写入任何数据;如果它返回的是-1.就表示在write调用中出现了错误,错误代码保存在全局变量errno里。
二、read系统调用
头文件:<unistd.h>
size_t read(int fd, void *buff, size_t nbytes);
系统调用read的作用是:从与文件描述符fd关联的文件里读入nbytes个字节的数据,并把它们放到buff缓冲区中,它返回实际读入的字节数,这可能会小于请求的字节数。如果read调用返回0,就表示未读入到任何数据,已到达文件尾。同样,如果返回的是-1,就表示read调用出现了错误。
下面给出一段代码:
#include<unistd.h>
#include<stdlib.h>
int main()
{
char buffer[128];
int nread;
nread = read(0,buffer,128);
if( nread == -1 )
{
write(2,"A read error has occurred\n",26);
}