write系统调用将数据写入一个打开的文件。
ssize_t write(int fd, void *buffer, size_t count);
write调用的参数含义与read调用相类似。buffer参数为要写入文件中数据的内存地址,count参数是想从buffer写入文件的数据字节数,fd是一个文件描述符,指代要写入的文件。
如果write调用成功,将返回实际写入文件的字节数,该值可能小于count参数值。这被称为部分写。
对磁盘文件来说,造成部分写的原因可能是由于磁盘已满,或是因为进程资源对文件大小的限制。
对磁盘文件执行IO操作时,write调用成功并不能保证数据已经写入磁盘 了。因为为了减少磁盘活动量和加快write系统调用,内核会缓存磁盘的IO操作。