news 2026/4/23 16:37:24

飞凌嵌入式ElfBoard-获取文件的状态信息之lstat

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞凌嵌入式ElfBoard-获取文件的状态信息之lstat

1.头文件

#include <sys/stat.h>

2.函数原型

int lstat(const char *pathname, struct stat *statbuf);

3.参数

pathname:符号链接的路径

statbuf:执行struct stat结构的指针,用来存储符号链接的状态信息。

4.返回值

返回值:成功返回0 失败返回-1。

5.示例:(使用lstat获取符号链接状态信息

#include <stdio.h>

#include <stdlib.h>

#include <sys/stat.h>

#include <unistd.h>

void print_file_info(const char *path) {

struct stat file_info;

if (lstat(path, &file_info) < 0) {

perror("lstat");

exit(EXIT_FAILURE);

}

printf("File: %s\n", path);

if (S_ISLNK(file_info.st_mode)) {

printf("Type: Symbolic link\n");

} else {

printf("Is not Symbolic link\n");

}

printf("Size: %ld bytes\n", (long)file_info.st_size);

printf("Permissions: ");

printf((S_ISDIR(file_info.st_mode)) ? "d" : "-");

printf((file_info.st_mode & S_IRUSR) ? "r" : "-");

printf((file_info.st_mode & S_IWUSR) ? "w" : "-");

printf((file_info.st_mode & S_IXUSR) ? "x" : "-");

printf((file_info.st_mode & S_IRGRP) ? "r" : "-");

printf((file_info.st_mode & S_IWGRP) ? "w" : "-");

printf((file_info.st_mode & S_IXGRP) ? "x" : "-");

printf((file_info.st_mode & S_IROTH) ? "r" : "-");

printf((file_info.st_mode & S_IWOTH) ? "w" : "-");

printf((file_info.st_mode & S_IXOTH) ? "x" : "-");

printf("\n");

}

int main() {

const char *path = "example_symlink";

// 测试路径是否存在的符号链接

print_file_info(path);

return 0;

}

查看当前目录下的文件:

$ls -l

total 20

lrwxrwxrwx 1 elf forlinx 10 8月 9 15:17 example_symlink -> /proc/kmsg

-rwxr-xr-x 1 elf forlinx 16272 8月 9 15:52 lstat_test

-rw-r--r-- 1 elf forlinx 1233 8月 9 15:52 lstat_test.c

6.执行命令,查看测试结果

File: example_symlink

Type: Symbolic link

Size: 10 bytes

Permissions: -rwxrwxrwx

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 15:02:02

代码随想录算法训练营Day44 | 99.岛屿数量、100.岛屿的最大面积

KamaCoder99.岛屿数量 99. 计数孤岛 1.思路 DFS 深搜解法 解决此问题的核心思想是 DFS。当我们遍历网格时&#xff0c;每遇到一个未被访问过的陆地&#xff08;1&#xff09;&#xff0c;就意味着发现了一个新的岛屿。此时&#xff0c;我们需要从这个点出发&#xff0c;通过D…

作者头像 李华
网站建设 2026/4/23 12:07:53

USBMap终极指南:轻松解决MacOS USB端口限制问题

USBMap终极指南&#xff1a;轻松解决MacOS USB端口限制问题 【免费下载链接】USBMap Python script for mapping USB ports in macOS and creating a custom injector kext. 项目地址: https://gitcode.com/gh_mirrors/us/USBMap 你是否遇到过在Mac上连接USB设备时发现某…

作者头像 李华
网站建设 2026/4/18 8:15:54

突破材料科学瓶颈:DREAM3D 3D微结构分析软件实战指南

突破材料科学瓶颈&#xff1a;DREAM3D 3D微结构分析软件实战指南 【免费下载链接】DREAM3D Data Analysis program and framework for materials science data analytics, based on the managing framework SIMPL framework. 项目地址: https://gitcode.com/gh_mirrors/dr/DR…

作者头像 李华
网站建设 2026/4/22 1:36:49

玩美移动 AI 试衣服从“娱乐玩具”到真正可商用的能力进化

——玩美移动&#xff08;Perfect Corp.&#xff09;AI Clothes 技术深度解析 在过去的一年里&#xff0c;互联网掀起了“大模型换衣服”热潮&#xff0c;各种换装 Demo、AI 商拍系统层出不穷。但大多数只能做到“看起来换上去了”&#xff0c;更多是娱乐性质&#xff0c;距离…

作者头像 李华
网站建设 2026/4/19 21:33:54

Cowabunga:8大功能打造终极iOS个性化体验指南

Cowabunga&#xff1a;8大功能打造终极iOS个性化体验指南 【免费下载链接】Cowabunga iOS 14.0-15.7.1 & 16.0-16.1.2 MacDirtyCow ToolBox 项目地址: https://gitcode.com/gh_mirrors/co/Cowabunga 在iOS设备个性化定制的世界里&#xff0c;Cowabunga无疑是一款革命…

作者头像 李华
网站建设 2026/4/18 0:09:49

IEC61131-3编程语言:工业自动化领域的标准化利器

IEC61131-3编程语言&#xff1a;工业自动化领域的标准化利器 【免费下载链接】IEC61131-3编程语言及应用基础 IEC61131-3编程语言及应用基础 项目地址: https://gitcode.com/Open-source-documentation-tutorial/44794 您是否曾经为工业控制系统的编程复杂性而困扰&…

作者头像 李华