`
mactonish
  • 浏览: 17174 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

lstat(传入路径参数,&一种struct)返回0或1

阅读更多
apue 04.pdf

S _ I S L N K ( )
S _ I S S O C K ( )
符号连接( P O S I X . 1 或 S V R 4无此类型) 套接字( P O S I X . 1 或 S V R 4无此类型)
为了跨平台,代码写成#ifdef这种
#include "apue.h"

int
main(int argc, char *argv[])
{
    int         i;
    struct stat buf;
    char        *ptr;

    for (i = 1; i < argc; i++) {
        printf("%s: ", argv[i]);
        if (lstat(argv[i], &buf) < 0) {
            err_ret("lstat error");
            continue;
        }
        if (S_ISREG(buf.st_mode))
            ptr = "regular";
        else if (S_ISDIR(buf.st_mode))
            ptr = "directory";
        else if (S_ISCHR(buf.st_mode))
            ptr = "character special";
        else if (S_ISBLK(buf.st_mode))
            ptr = "block special";
        else if (S_ISFIFO(buf.st_mode))
            ptr = "fifo";
#ifdef S_ISLNK
        else if (S_ISLNK(buf.st_mode))
            ptr = "symbolic link";
#endif
#ifdef S_ISSOCK      
        else if (S_ISSOCK(buf.st_mode))
            ptr = "socket";
#endif
        else
            ptr = "** unknown mode **";
        printf("%s\n", ptr);
    }
    exit(0);
}

这样定义的
#define S_ISDIR (mode) (((mode) & S_IFMT) == S_IFDIR)
分享到:
评论

相关推荐

    fstat、stat和lstat异同

    stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。

    Linux C ll 命令代码

    简单易懂哦!... struct stat buf; struct passwd *usr; struct group *grp; int rt; struct tm *ttime; char linkname[64]; rt=lstat(name,&buf;); //调用lstat 获取文件属性,并对返回值做错

    node.js中的fs.lstat方法使用说明

    这意味着如果你试图获取一个符号链接的目标信息,`fs.lstat`会返回链接自身的信息,而不是链接所指向的文件或目录的属性。 ### 方法说明 `fs.lstat`方法的使用非常简单,其基本语法如下: ```javascript fs.lstat...

    文件夹遍历的程序

    文件夹 遍历的代码 int isDir(const char* path) { struct stat st; lstat(path, &st;); return S_ISDIR(st.st_mode);

    c++判断是否为目录的示例分享

    代码如下:#include&lt;sys&gt;#include&lt;unistd&gt;int is_dir(char *path){ struct stat buf;... 您可能感兴趣的文章:VC++获得当前进程运行目录的方法C++递归删除一个目录实例C++检查某个文件或目录是否存在的函数C/

    文件IO接口函数功能说明以及函数用法

    - 参数:`pathname`是文件路径,`fd`是文件描述符,`statbuf`是一个`struct stat`类型的指针,用于存储文件信息。 - 返回值:成功返回0,失败返回-1并设置错误号。 - `struct stat`成员: - `st_size`:文件大小...

    文件I/O常用函数总结

    成功执行返回0,失败返回-1,并设置`errno`。 ### 八、总结 本文详细介绍了Linux C中一些常用的文件I/O函数,包括文件的打开/创建、读取、写入、关闭以及移动文件读/写指针等操作。通过这些函数,我们可以实现对...

    操作系统实现cp命令

    操作系统实现cp命令是计算机科学领域中的一种基本操作,cp命令是Linux操作系统中的一种基本命令,用于复制文件或目录。下面我们将对操作系统实现cp命令的知识点进行总结。 实验目的 操作系统实现cp命令的实验目的...

    ios指定路径文件大小

    请注意,文件大小的单位转换通常基于1024进制(1KB = 1024B,1MB = 1024KB,以此类推),但在实际存储设备中,制造商通常使用1000进制(1KB = 1000B,1MB = 1000KB,等)。因此,在实际应用中,你可能需要根据实际...

    UNIX环境高级编程04

    `stat`函数接收一个路径名,返回该文件的详细信息;`fstat`函数通过文件描述符获取信息;`lstat`函数与`stat`类似,但在处理符号链接时,它返回链接本身的信息而非链接指向的文件。返回值为0表示成功,-1表示失败。...

    pwd指令的简单实现

    在这个简单的程序中,`getcwd()`函数接收两个参数:一个用于存放路径的缓冲区(在这里传入NULL,表示让函数自行分配内存),以及缓冲区的大小(传入0,表示自动计算所需大小)。如果成功,它会返回一个指向路径字符...

    syscalls_exp.zip_Different

    与`stat()`不同的是,`lstat()`会处理符号链接,如果指定的路径是一个链接,它会返回链接指向的文件的信息,而不是链接本身。 "experiment_with_kill.c"可能涉及到`kill()`系统调用,这是用于发送信号到进程的常用...

    机器学习波士顿房价数据集.zip

    0.00632 18 2.31 0 0.538 6.575 65.2 4.09 1 296 15.3 396.9 4.98 24 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.9 9.14 21.6 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 ...

    判断目标是否是文件夹的资源

    JavaScript(Node.js)中,可以使用`fs`模块的`stat()`或`lstat()`方法,然后检查返回的`Stat`对象的`isDirectory()`属性: ```javascript const fs = require('fs'); async function isDirectory(path) { const ...

    c语言下实现ls命令.doc

    - 使用`lstat()`或`stat()`函数获取文件的属性信息,并存入`struct stat`结构体。 - 利用`S_IS...`宏判断文件类型。 ##### 3.3 心得体会 通过本项目的学习与实践,不仅可以深入了解`ls`命令的工作原理,还能掌握...

    linux基于socket

    **Socket** 是一种特殊的文件描述符,它允许不同计算机之间进行双向通信。在 Linux 下,Socket 的创建、绑定和监听主要通过以下步骤: 1. **创建 Socket**:通过 `socket()` 函数创建一个 Socket 文件描述符。 2. *...

Global site tag (gtag.js) - Google Analytics