日期:2014-05-16  浏览次数:20744 次

请问LINUX命令行参数怎么使用啊! 谢谢大家了!
下面的代码可以显示 "命令行中指定的任何文件的标识位 "
我编译已经成功了,但是怎么用呢??哭...

编译:   gcc   -Wall   -o   tryC   try.c
运行???怎么在命令行中加入待检测的文件名?


//try.c
#include   <errno.h>
#include   <fcntl.h>
#include   <linux/ext3_fs.h>
#include   <stdio.h>
#include   <string.h>
#include   <sys/ioctl.h>
#include   <unistd.h>

int   main(int   argc,   char*   argv[])
{
        const   char   **filename   =   argv   +   1;
        int   fd;
        int   flags;
       
        while(*filename)
        {
                fd   =   open(*filename,   O_RDONLY);
                if(fd   <   0)
                {
                        fprintf(stderr,   "cannot   open   %s:   %s\n ",   *filename,   strerror(errno));
                        return   1;
                }
       
       
                if(ioctl(fd,   EXT3_IOC_GETFLAGS,   &flags))
                {
                        fprintf(stderr,   "ioctl   failed   on   %s:   %s\n ",   *filename,   strerror(errno));
                        return   1;
                }
               
                printf( "%s ",   *filename++);
       
                if(flags   &   EXT3_APPEND_FL)   printf( "Append ");
                if(flags   &   EXT3_IMMUTABLE_FL)   printf( "Immutable ");
                if(flags   &   EXT3_NODUMP_FL)   printf( "Nodump ");
       
                printf( "\n ");
                close(fd);
        }            
        return   0;
}

------解决方案--------------------
#./tryC filename1 filename2 filename3
我运行了一下,可惜我的是EXT2文件系统 呵呵
------解决方案--------------------
const char *filename = argv[1];