news 2026/4/15 18:30:40

飞凌嵌入式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/11 20:00:23

深度掌握浏览器自动化协议:构建高效远程调试系统的核心技术

在现代Web开发领域&#xff0c;浏览器自动化协议已经成为提升开发效率和质量的关键技术。这一强大的远程调试技术不仅为开发者提供了精准的调试能力&#xff0c;更为自动化测试、性能监控和用户体验优化奠定了坚实基础。通过深入理解其工作原理和应用模式&#xff0c;技术团队能…

作者头像 李华
网站建设 2026/4/13 21:48:53

LeetCode 98. 验证二叉搜索树 解题总结

目录 一、方法一&#xff1a;递归边界约束法&#xff08;范围校验&#xff09; 1. 核心思想 2. 完整实现代码 3. 重点 & 难点 二、方法二&#xff1a;中序遍历法&#xff08;利用 BST 特性&#xff09; 1. 核心思想 2. 实现代码 版本 1&#xff1a;递归中序遍历&…

作者头像 李华
网站建设 2026/4/15 13:15:21

15B参数多模态模型Apriel-1.5-Thinker:中小企业AI部署新选择

导语 【免费下载链接】Apriel-1.5-15b-Thinker 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Apriel-1.5-15b-Thinker ServiceNow推出的15B参数多模态推理模型Apriel-1.5-Thinker&#xff0c;以其仅需单GPU即可运行的轻量化特性和媲美大模型的推理能力&#x…

作者头像 李华
网站建设 2026/4/9 14:56:53

Dify 工作原理与应用实例

Dify.AI 是一款开源的 LLM&#xff08;大语言模型&#xff09;应用开发平台。它融合了后端即服务&#xff08;Backend as a Service, BaaS&#xff09;和 LLMOps 的理念&#xff0c;允许开发者&#xff08;甚至非技术人员&#xff09;通过可视化界面快速构建生成式 AI 应用。 本…

作者头像 李华
网站建设 2026/4/7 13:00:39

VRM与VRChat模型互转终极指南:免费工具让新手快速上手

VRM与VRChat模型互转终极指南&#xff1a;免费工具让新手快速上手 【免费下载链接】VRMConverterForVRChat 项目地址: https://gitcode.com/gh_mirrors/vr/VRMConverterForVRChat 还在为VRM模型无法在VRChat中使用而烦恼吗&#xff1f;现在&#xff0c;一款强大的免费转…

作者头像 李华