zoukankan      html  css  js  c++  java
  • 使用lstat()判断文件类型 分类: H_HISTORY 20130224 11:48 703人阅读 评论(0) 收藏

    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    
    #define _GNU_SOURCE
    
    int main (int argc, char *argv[]){
    
        struct stat buf;
    
        for(int i = 1; i < argc; i++){
            if(lstat(argv[i], &buf) < 0){
                printf("lstat invoke error.");
                continue;
            }
            printf("%s is a ", argv[i]);
            if (S_ISREG(buf.st_mode)){
                printf("regular file.");
            }else if(S_ISDIR(buf.st_mode)){
                printf("direcotry.");
            }else if(S_ISBLK(buf.st_mode)){
                printf("block device.");
            }else if(S_ISCHR(buf.st_mode)){
                printf("character device.");
            }else if(S_ISFIFO(buf.st_mode)){
                printf("FIFO.");
            }else if(S_ISLNK(buf.st_mode)){
                printf("soft link.");
            }else if(S_ISSOCK(buf.st_mode)){
                printf("socket.");
            }else
                printf("Unkown type.");
         }
    
            printf("\n");
    
            exit(0);
    }


    编译时出现以下错误:

    filetype.c: In function ‘main’:
    filetype.c:14:9: warning: implicit declaration of function ‘lstat’ [-Wimplicit-function-declaration]
    filetype.c:31:9: warning: implicit declaration of function ‘S_ISSOCK’ [-Wimplicit-function-declaration]
    /tmp/ccLbzony.o: In function `main':
    filetype.c:(.text+0x182): undefined reference to `S_ISSOCK'
    collect2: error: ld returned 1 exit status
    第一个不warning不影响运行,第二个又是怎么回事?

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    使用expect实现ssh免密码登陆
    vim不小心ctrl+Z解决办法
    bash 自动补全
    PHP缓存技术
    windows下安装python的easy_install工具
    python中用lxml解析html
    python中用xpath和xml.dom解析html
    申请使用sourceforge免费空间几点注意事项
    创建.htaccess文件
    静态资源放置于独立域名之下
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4637416.html
Copyright © 2011-2022 走看看