C
使用文件系統呼叫
我正在嘗試學習打開、寫入和關閉文件的系統呼叫。我使用這個樣本,結果是:
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
這是我的程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> int main (int argc, char *argv[]) { int fd1; char buf[128]; fd1 = open("Desktop/this.txt", O_WRONLY); if (fd1 == -1) { perror("File cannot be opened"); return EXIT_FAILURE; } /* Enter the data to be written into the file */ scanf("%127s", buf); write(fd1, buf, strlen(buf)); /* fd1 is the file descriptor, buf is the character array used to hold the data, strlen(buf) informs the function that the number of bytes equal to the length of the string in the buffer need to be copied */ close(fdl); return 0; }
我想你正在使用 Ubuntu、Debian 或一些衍生產品。確保您的系統是最新的,然後安裝 g++。
cc1plus
是 C++ 編譯器的一個組件。您正在嘗試編譯 C 程序。該gcc
命令根據源文件的名稱確定要呼叫的編譯器:用於 的 C 編譯器、用於or.c
的 C++ 編譯器、用於的 Pascal 編譯器、用於的彙編器等。.cc``.C``.p``.s
看來您給您的程序起了一個表示 C++ 程序的名稱。請注意,Linux 文件名區分大小寫。C 源文件必須具有副檔名
.c
(小寫c
),而不是.C
. Unix 使用者傾向於在文件名中主要使用小寫字母,尤其是幾乎所有正常文件副檔名都是小寫字母。因此,請確保使用小寫文件名。