在Linux中,write()函數用于向文件描述符(file descriptor)寫入數據。其函數原型如下:
ssize_t write(int fd, const void *buf, size_t count);
參數說明:
fd:文件描述符,表示要寫入數據的文件。
buf:要寫入的數據的緩沖區。
count:要寫入的數據的字節數。
函數返回值:
成功時,返回實際寫入的字節數。
失敗時,返回-1,并設置errno變量來指示錯誤類型。
使用write()函數時,需要保證文件描述符有效且具有寫入權限。此外,write()函數是一個阻塞函數,即在寫入數據時會一直等待直到寫入完成或者出現錯誤。
下面是一個簡單的示例,演示了如何使用write()函數向文件中寫入數據:
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
int main() {
int fd = open("example.txt", O_WRONLY | O_CREAT, 0644);
if (fd == -1) {
perror("open");
return 1;
}
const char *data = "Hello, world!";
ssize_t bytes_written = write(fd, data, strlen(data));
if (bytes_written == -1) {
perror("write");
close(fd);
return 1;
}
close(fd);
return 0;
}
在上述示例中,我們使用open()函數打開一個名為"example.txt"的文件,設置打開模式為只寫(O_WRONLY)并創建文件(O_CREAT)。然后,我們定義一個字符串并使用write()函數將其寫入文件中。最后,我們使用close()函數關閉文件描述符。
注意:在實際使用中,可能需要對write()函數進行錯誤處理,并在發生錯誤時進行相應的處理。