09-数据写入文件_write()
4.5 数据写入文件:write()
write()系统调用将数据写入一个已打开的文件中。
write()调用的参数含义与read()调用相类似。buffer参数为要写入文件中数据的内存地址,count参数为欲从buffer写入文件的数据字节数,fd参数为一文件描述符,指代数据要写入的文件。
如果write()调用成功,将返回实际写入文件的字节数,该返回值可能小于count参数值。这被称为“部分写”。对磁盘文件来说,造成“部分写”的原因可能是由于磁盘已满,或是因为进程资源对文件大小的限制。(相关的限制为RLIMIT_FSIZE,将在36.3节描述。)
对磁盘文件执行I/O操作时,write()调用成功并不能保证数据已经写入磁盘。因为为了减少磁盘活动量和加快write()系统调用,内核会缓存磁盘的I/O操作,第13章将会详加介绍。