使用檔案系統調用

使用檔案系統調用

我正在嘗試學習打開、寫入和關閉文件的系統呼叫。我使用這個範例,結果是:

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;
}

答案1

我假設您使用的是 Ubuntu、Debian 或某些衍生版本。確保您的系統是最新的,然後安裝 g++。

答案2

cc1plus是 C++ 編譯器的一個元件。您正在嘗試編譯 C 程式。此gcc指令根據原始檔的名稱決定要呼叫哪個編譯器: 的 C 編譯器、 or.c的 C++ 編譯器、 的 Pascal 編譯器、 的組譯器等。.cc.C.p.s

看來您為您的程式取了一個表明 C++ 程式的名稱。請注意 Linux 檔案名稱區分大小寫。 C 原始檔必須具有副檔名.c(小寫c),而非.C. Unix 使用者傾向於在檔案名稱中使用大部分小寫字母,特別是幾乎所有常規檔案副檔名都是小寫的。因此請確保使用小寫檔案名稱。

相關內容