C 語言中寫入檔案

Jinku Hu 2023年10月12日
  1. C 語言中使用 fwrite 函式寫入檔案
  2. C 語言中使用 write 函式寫入檔案
C 語言中寫入檔案

本文將演示關於如何在 C 語言中向檔案寫入的多種方法。

C 語言中使用 fwrite 函式寫入檔案

C 語言的標準 I/O 庫提供了讀/寫檔案的核心函式,即 freadfwritefwrite 需要四個引數,一個 void 指標,表示資料應該從哪裡獲取,給定指標處資料元素的大小和數量,一個 FILE*指標,表示輸出檔案流。

需要注意的是,開啟檔案流應該先用 fopen 函式開啟,該函式取所需模式的檔名並返回 FILE*。本例中,我們使用 w+ 模式開啟檔案進行讀寫。不過要注意,如果檔案不存在,就會用給定的檔名建立一個新的檔案。接下來,我們將檢查返回的檔案流指標是否有效。如果不是,就會列印相應的錯誤資訊,並退出程式。一旦檔案流指標得到驗證,就可以呼叫 fwrite 函式。請記住,在程式退出之前應該用 fclose 函式關閉檔案。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const char* str = "Temporary string to be written to file!";

int main(void) {
  const char* filename = "out.txt";

  FILE* output_file = fopen(filename, "w+");
  if (!output_file) {
    perror("fopen");
    exit(EXIT_FAILURE);
  }

  fwrite(str, 1, strlen(str), output_file);
  printf("Done Writing!\n");

  fclose(output_file);
  exit(EXIT_SUCCESS);
}

C 語言中使用 write 函式寫入檔案

另外,我們也可以使用 write,這是一個符合 POSIX 標準的函式呼叫,它將給定的位元組數寫入檔案描述符所引用的檔案中。注意,檔案描述符是一個與開啟的檔案流相關聯的整數。為了檢索描述符,我們應該用檔名路徑呼叫 open 函式。write 函式以檔案描述符為第一個引數,以 void*指向的資料緩衝區為第二個引數。第三個引數是要寫入檔案的位元組數,在下面的例子中用 strlen 函式計算。

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

const char* str = "Temporary string to be written to file!";

int main(void) {
  const char* filename = "out.txt";

  int fd = open(filename, O_WRONLY);
  if (fd == -1) {
    perror("open");
    exit(EXIT_FAILURE);
  }

  write(fd, str, strlen(str));
  printf("Done Writing!\n");

  close(fd);
  exit(EXIT_SUCCESS);
}
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook

相關文章 - C File