我的腳本需要與C可執行文件進行通信時出現問題。我無法獲取腳本的完整路徑,我需要將其加載併發送到另一個進程。在Shell中運行C程序時將相對路徑展開爲完整路徑
腳本的名稱是myScript
#!/home/user/git/proyect/test
hello this
is a
script
,這是C可執行
#include <stdio.h>
int main (int argc, char *argv[]){
int count;
printf ("Este programa fue llamado con: \"%s\".\n",argv[0]);
if (argc > 1){
for (count=1; count<argc; count++){
printf("argv[%d] = %s\n", count, argv[count]);
}
}
else{
printf("The command had no other arguments.\n");
}
return 0;
}
的源代碼如果我運行從終端myScript
,
argv[0]
示出可執行文件的路徑(我想這是因爲它是在的信息)。argv[1]
顯示傳遞給可執行文件的第一個參數,即- 如果我用
./myScript
作爲參數,這是我所看到的(相對路徑) - 如果我用
/home/user/git/proyect/test/scriptFolder/myScript
作爲參數,它顯示了絕對路徑(這是我所需要的,但我不想每次都寫在終端的完整路徑)
- 如果我用
所以我的問題是,如何獲取的myScript
的完整路徑,而不及格它的完整路徑whe ñ調用腳本?
謝謝!這正是我所期待的。 realpath() 我應該用完整的工作代碼編輯我的問題嗎? – Leo
@你不需要。 –
但我想,所以答案保持作爲未來的例子。我的意思是,如果我想這樣做,編輯問題是好的,或者應該添加它作爲評論或什麼? – Leo