zoukankan      html  css  js  c++  java
  • 使用lstat()判断文件类型

    #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不影响运行,第二个又是怎么回事?

  • 相关阅读:
    Spring 原生SQL查询
    Spring 使用注解查询 JPQL 按对象查询
    JAVA 判断输入流是否为空
    Spring-AOP教程
    错误笔记5, Spring datatable Error creating bean with name 'userController'
    Spring 分页查询
    前端传数据到servlet数据乱码
    sql 分页查询
    移动APP性能测试
    【8】接口、多态
  • 原文地址:https://www.cnblogs.com/eaglegeek/p/4558017.html
Copyright © 2011-2022 走看看