3

私は、プログラムの引数として提示されたファイルのファイルタイプを表示するLinuxマシン上のCのプログラムに取り組んでいます。プログラムは、ファイルがディレクトリ、デバイス、(通常の)ファイル、リンク、ソケット、またはFIFOのいずれかであるかどうかを判別する必要があります。ファイルの種類を判別する方法が正確にはわかりません。

これまでの私のコードは次のとおりです(それほど多くはありません):

int
main(int argc, char **argv)
{
    if( argc == 1 )     /* default: current directory */
        puts("Directory");
    else
        while( --argc > 0 )
            determine_ftype(*++argv);

    return  0;
}

ありがとう!

4

1 に答える 1

13

POSIX関数を使用して、関数によって返される構造体statのフィールドを読み取ります。st_modestruct stat

stat働き:

http://pubs.opengroup.org/onlinepubs/7908799/xsh/stat.html

構造struct statタイプ:

http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html

14.9.3 Testing the Type of a Fileglibcについては、glibcマニュアルのセクションも読むことができます。

http://www.gnu.org/software/libc/manual/html_node/Testing-File-Type.html

于 2012-06-30T18:20:56.260 に答える