いっしょにtalk C栗(第五十八回:C言語例--プログラムの現在の作業経路を取得)


皆さん、こんにちは、前回はmain関数パラメータの例をお話ししましたが、今回はプログラムの現在の取得
を選択します.余談はさておき,話は本筋に戻る.一緒にtalk C栗を食べましょう!
私たちが仕事をしている間に、現在のプログラムの作業経路を取得する必要がある場合があります.私たちが以前言ったLinux命令を覚えていますか?
Linuxコマンドには、現在の作業経路を表示できるpwdというコマンドがあります.
次に、以下の説明を行います.
端末を開き、現在の作業経路にpwdコマンドを入力し、車に戻ってコマンドを実行します.コマンドの実行結果は次のとおりです.
/home/talk8/CExample          //<span style="font-family:SimSun;">         </span>

私たちは端末でpwdコマンドを実行して現在の作業ディレクトリを手に入れたのですが、C言語プログラムで考えたら
現在の作業ディレクトリを入手するには、どのような方法がありますか?
方法はきっとあります.execlp()関数で実現できます.execlp関数は、端末を呼び出すことによって、それに渡されるコマンドを実行します.
具体的な使い方:execlp(cmd,cmd,params,char*p).
  • において、cmdは端末で実行可能なコマンドを表す.
  • paramsはcmdのパラメータである.
  • pは通常使用されず、0に付与すればよい.
  • この関数には戻り値があり、端末がサポートしていないコマンドに遭遇した場合、-1が返され、コマンドを実行できないか、コマンドの実行に失敗したことを示します.

  • Linuxシステムは、上記の方法に加えて、専用のAPI:getcwdを提供しています.これにより、現在の作業を取得できます.
    目次.
    具体的な使い方:getcwd(char*buf,int size).
  • bufは、取得されたワークパスを格納するために使用される.
  • sizeはbufのサイズを表します.

  • 官達を見て、本文の中でコードを書かないで、詳しいコードは私の資源の中に置いて、みんなはここをクリックしてダウンロードして使うことができます.
    以下はプログラムの実行結果です.参考にしてください.
    <span style="font-size:18px;">./s              //        
    Current directory is :/home/talk8/CExample  //  API        
    
    ./s pwd         //        ,      pwd,       pwd  
    /home/talk8/CExample           //  execlp        
    
    ./s a           //        ,      a,       a  
    a: command not found.          //    a  
    
    ./s a a a      //        , 2,3,4     a,       a  
    two many params                //    a  </span>

    皆さん、プログラムの現在の作業経路を取得する例についてお話しします.後に何か例があるか知りたいので、次の分解を聞いてください.