簡體   English   中英

從Linux中的/ bin /啟動C應用程序時獲取當前路徑

[英]Get current path when C app is launched from /bin/ in Linux

因此,我正在研究一種讀取文件的應用程序,就像vim或cat一樣,在其中鍵入“ appname /path/to/file.txt”,它將文件路徑作為性能參數傳遞給操作該文件的程序某種程度上來說。

不過,我遇到了一個障礙。 在vim,cat或類似程序中,您可以鍵入“ appname file.txt”,它將讀取您從終端啟動應用程序的當前目錄中的文件。

例如,我要編輯我的文檔目錄中的文件。 我鍵入“ cd〜/ Documents”,然后可以鍵入“ vim〜/ Documents / Essay.txt”,也可以鍵入“ vim Essay.txt”。

我的應用程序將存儲在/ bin /目錄中的二進制文件中,因此我可以使用Terminal從任何地方啟動它,但是當我從Terminal調用它時,如何傳遞我所在目錄的路徑名?

由於我是一名新的Linux開發人員(我一直在Windows中使用.NET編程),因此我不確定這是由Linux終端還是由C應用程序本身處理的。

任何幫助或建議,將不勝感激!

另外,如果從終端運行它比將其粘貼在/ bin /中更有效,請告訴我。

如果要獲取該目錄,則可以使用系統調用getcwd從中運行該進程,以將字符串復制到緩沖區中並返回它。 內核會跟蹤每個進程。

例如

char buf[100];
printf("Current directory: %s\n", getcwd(buf, 100));

可以更改工作目錄,但默認為啟動進程的位置。

無需執行任何特殊操作即可正常工作。 您是否嘗試了無法按預期工作的方法?

通常,您不將用戶程序放在/ bin中。 我會將您的程序存儲在/ usr / local / bin中。

https://unix.stackexchange.com/a/8658

暫無
暫無

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

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