IO进程线程,文件与目录,实现linux任意目录下ls -la
注意文件的名字、路径是如何输入的。
函数opendir打开目录,struct dirent,struct stat这些结构体的含义。
readdir()函数是一个用于读取目录内容的系统调用或库函数,在类Unix操作系统中(如Linux)广泛使用。它用于遍历目录,并逐个获取目录中的条目(文件和子目录)。
lstat和stat是用于获取文件信息的系统调用,主要在处理符号链接时存在差异。以下是它们之间的主要区别:
1. 处理符号链接:
lstat:当使用lstat函数获取一个符号链接的信息时,它返回的是符号链接本身的信息,而不是链接所指向文件的信息。这使得你能够查看链接本身的属性,而不用跟随链接指向的文件。
stat:当使用stat函数获取一个符号链接的信息时,它会自动跟随链接,返回链接指向的文件的信息,而不是链接本身的信息。
2. 跟随链接:
lstat:对于符号链接,lstat不会自动跟随链接,它会返回链接本身的属性,包括链接指向的路径。
stat:对于符号链接,stat会自动跟随链接,返回链接指向的文件的属性。
对于符号链接,`lstat`返回了链接本身的信息,而`stat`返回了链接指向的文件的信息。
/*===============================================
* 文件名称:stat.c
* 创 建 者:WM
* 创建日期:2023年08月24日
* 描 述:文件目录下除了隐藏文件查看
================================================*/
#include <stdio.h>
#include <sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<string.h>
#include<pwd.h>
#include<grp.h>
#include<time.h>
#include<dirent.h>
int main(int argc, char *argv[])
{ char path[100]={0};if(2!=argc){printf("error\n");return -1;}DIR * dirp=opendir(argv[1]);//获取所有的目录下的文件名struct dirent *a;//接收strcpy(path,argv[1]);while (NULL!=(a=readdir(dirp)))//从第一个文件名开始遍历到最后。{struct stat st;strcpy(path,argv[1]);strcat(path,"/");strcat(path,a->d_name);if(a->d_name[0]=='.')//去除隐藏文件continue;lstat(path,&st);//链接文件读取if(S_ISREG(st.st_mode))//判断文件类型printf("-");else if (S_ISDIR(st.st_mode))printf("d");else if(S_ISLNK(st.st_mode))printf("l");for ( int i=8; i >= 0; i-=3)//查看文件的权限{if(st.st_mode & 1<<i)printf("r");elseprintf("-");if(st.st_mode&1<<(i-1))printf("w");elseprintf("-");if(st.st_mode&1<<(i-2))printf("x");elseprintf("-");}//链接数printf(" %ld",st.st_nlink);//用户名struct passwd *pw=getpwuid(st.st_uid);printf(" %s ",pw->pw_name);//用户组名struct group *gr =getgrgid(st.st_gid);printf( "%s",gr->gr_name);//大小printf(" %ld",st.st_size);//去除换行char arr[100]={0};strcpy(arr,ctime(&st.st_mtime));if(arr[strlen(arr)-1]=='\n')arr[strlen(arr)-1]='\0';printf(" %s ",arr);printf(" %s ",a->d_name);puts("");}return 0;
}
相关文章:
IO进程线程,文件与目录,实现linux任意目录下ls -la
注意文件的名字、路径是如何输入的。 函数opendir打开目录,struct dirent,struct stat这些结构体的含义。 readdir()函数是一个用于读取目录内容的系统调用或库函数,在类Unix操作系统中(如Linux)广泛使用。它用于遍历…...
R语言如果列表中有列表,且每个子列表有一个向量:如何转变为仅仅一个列表里面含有向量
引言 有些时候,比如批量读取表格中的某一列的时候,最终你会得到列表里面装列表,且每个列表里面只有一个向量的情况。我们的目标是不要中间这一层列表,而是直接变成列表-向量这种简单的结构,如何完成呢。我觉得有很多方…...
nrm管理源仓库及发布私人npm包
使用nrm管理源及切换源仓库 1.安装nrm源管理器 npm install nrm -g2.查看目前现有的源仓库 通过 nrm ls 查看现有的源 nrm ls 输出:这是目前现有的源 3.切换不同的源 可以通过 nrm use xxx(源仓库名)来切换不同的源地址 nrm use taobao…...
云计算——虚拟化中的网络架构与虚拟网络(文末送书)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页 目录 前期回顾 前言 一.网卡虚拟化 1.网卡虚拟化方法&…...
B - 负环
题目描述 给定一个 n 个点的有向图,请求出图中是否存在从顶点 11 出发能到达的负环。 负环的定义是:一条边权之和为负数的回路。 输入格式 本题单测试点有多组测试数据。 输入的第一行是一个整数 T,表示测试数据的组数。对于每组数据的格…...
居中一个元素(水平+垂直居中)
我们的示例代码全在此基础上修改: ...... <style>* {margin: 0;padding: 0;}.par {width: 600px;height: 400px;background-color: antiquewhite;display: flex;justify-content: center;align-items: center;}.chi1 {width: 60px;height: 40px;backgrou…...
React笔记(二)JSX
一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用…...
[多标签分类]MultiLabelBinarizer: 从one-hot 到multi-hot
]MultiLabelBinarizer: 从one-hot 到multi-hot 背景知识One hot encoderLabelEncoderMultiLabelBinarizer总结 背景知识 多类别分类: label space至少有3个label, 且默认每个sample有一个label, 与之相对应的是二元分类Binary classification, 多标签分类: 每个sample有1至多…...
【校招VIP】前端算法考察之排序
考点介绍: 不同的场景中,不同的排序算法执行效率不同。 稳定:冒泡、插入、归并 不稳定:选择、快速、堆排序、希尔排序 『前端算法考察之排序』相关题目及解析内容可点击文章末尾链接查看! 一、考点题目 1、使用js实…...
集创北方ICN6211 是一款MIPIDSI转RGB视频桥接IC
ICN6211 1.描述: ICN6211是一个桥接芯片,它接收MIPIDSI输入并发送RGB输出。MIPIDSI最多支持4个车道, 每个车道的最大运行频率为1Gbps;总最大输入带宽为4Gbps;并且还支持MIPI定义的ULPS(超 低功耗状态&a…...
SMT制造中的产品质量检验和管理
SMT制造中的质量检验和产品物料管理都是实现高质量、低成本、高效益的重要方法。在SMT加工的过程中,产品质量的检验和质量把控都是重中之重,可以有效的降低产品不良率及返修等造成制造成本升高的风险问题,今天就来跟大家讨论一下SMT制造中我们…...
对接webservice接口时报错:发送方和接收方 Action 不匹配
趁着早上有时间,赶紧记录一下,哈哈。 错误提示如下: 1、英文版: <s:Envelope xmlns:s“http://schemas.xmlsoap.org/soap/envelope/”><s:Body><s:Fault>a:ActionNotSupportedThe message with Action ‘’ ca…...
python实现/直播服务器/聊天服务器/的多种解决方案
python有哪些技术栈 实现直播服务器 在Python中,您可以使用以下技术栈来实现直播服务器: Flask:Flask是一个轻量级的Web框架,可用于构建直播服务器的后端。您可以使用Flask编写API端点来处理直播流的控制和管理。 Django…...
PbootCMS 3.0.4 SQL注入
1.漏洞复现 PbootCMS 3.0.4,下载仓库 星梦/PbootCMS - Gitee.com 复现 漏洞页面:http://127.0.0.1/?search 或 http://127.0.0.1/?keyword POST请求:1select 1 2.正向分析 从可见功能点正向分析 index.php ... // 引用内核启动文件…...
SpringBoot异步方法支持注解@Async应用
SpringBoot异步方法支持注解Async应用 1.为什么需要异步方法? 合理使用异步方法可以有效的提高执行效率 同步执行(同在一个线程中): 异步执行(开启额外线程来执行): 2.SpringBoot中的异步方法支持 在SpringBoot中并不需要我们自己去创建维护线程或者线程池来…...
UI/UX设计与前端开发:从零到一打造完美用户体验
引言 在当今的软件开发领域,UI/UX设计和前端开发是两个密不可分的环节。UI/UX设计师负责创造出直观、美观、用户友好的界面,而前端开发者则将这些设计转化为实际的、可交互的网页或应用。本文将深入探讨这两个领域的交集,并通过代码示例来展…...
Hadoop Hdfs基本命令
0目录 1.hadoop安装问题处理 2.hdfs基本命令 3.上传/下载文件和文件夹 1.hadoop安装问题处理 如果安装有进程无法启动,如下图 重新检查6个配置文件 Core-site.xml \ hdfs-site.xml \ hadoop-env.sh \ yarn-site.xml \ workers \ yarn-site.xml 来到hadoop313目录…...
Spring Boot 整合MyBatis(超详细)
😀前言 本篇博文关于Spring Boot 整合MyBatis,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力&#x…...
【管理运筹学】第 6 章 | 运输问题(4,表上作业法 |闭回路调整法以及特殊情况 | 产销不平衡的运输问题)
文章目录 引言二、表上作业法2.3 改进的方法 —— 闭回路调整法2.4 表上作业法中的特殊情况(一)无穷多最优解(二)退化 三、产销不平衡的运输问题3.1 产量大于销量3.2 销量大于产量 写在最后 引言 接下来我们学习表上作业法的最后…...
Greenplum实用技巧
一、通过gp_segment_id查看数据倾斜 gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。 qb#select gp_segment_id, count…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
