簡體   English   中英

如何在clion中使用像wc這樣的GNU擴展作為execvp的參數?

[英]How to use GNU extension like wc as execvp's argument in clion?

簡單細分:

//temp.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>

int
main(int argc, char *argv[])
{
    char *myargs[3];
    myargs[0] = strdup("wc");
    myargs[1] = strdup("temp.c");
    myargs[2] = NULL;
    execvp(myargs[0], myargs);
}

在終端:

$ gcc temp.c; ./a.out你好,我是孩子(pid:30232)17 37362 temp.c

好的,它工作正常。

在線索中:

wc:temp.c:沒有這樣的文件或目錄

那么,如何在clion中啟用類似wc gnu擴展?

CLion在CMake項目設置中指定的單獨構建目錄中編譯並運行程序,通常是項目根目錄中的cmake-build-debug子目錄。 這意味着,運行程序時,工作目錄中沒有temp.c文件。

換句話說,您的項目布局很可能看起來像:

.
├── cmake-build-debug
│   ├── temp  ### <- your executable
│   └── ...
├── CMakeLists.txt
└── temp.c

嘗試將絕對路徑傳遞到/path/to/temp.c或相對路徑,以從工作目錄(即項目構建目錄,即../temp.c找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM