C語言中的write函數是用來將數據從文件描述符寫入到文件中。它的原型如下:
ssize_t write(int fd, const void *buf, size_t count);
其中,fd是文件描述符,buf是指向要寫入數據的緩沖區的指針,count是要寫入的字節數。
write函數的返回值是實際寫入的字節數。如果返回值為-1,則表示寫入出現錯誤,具體錯誤原因可以查看全局變量errno來獲取。
下面是一個使用write函數將字符串寫入文件的例子:
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd = open("output.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd == -1) {
perror("open");
return 1;
}
const char *str = "Hello, World!";
ssize_t bytes_written = write(fd, str, strlen(str));
if (bytes_written == -1) {
perror("write");
close(fd);
return 1;
}
close(fd);
return 0;
}
在上面的例子中,open函數用來打開一個文件,并返回文件描述符。如果文件不存在,則使用O_CREAT參數來創建文件。O_WRONLY參數表示以只寫方式打開文件,O_TRUNC參數表示清空文件內容。0644是文件權限,表示文件所有者有讀寫權限,其他用戶只有讀權限。
然后,通過write函數將字符串“Hello, World!”寫入到文件中,然后關閉文件描述符。
需要注意的是,write函數是以字節為單位進行寫入的,所以要確保傳入的緩沖區的大小至少是要寫入的字節數。