io和进程day03(文件IO、文件属性函数、目录相关函数)

今日任务

代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <dirent.h>
#include <grp.h>
#include <time.h>/** function:   打印某个文件的基本属性:* @param [ in] * @param [out] * @return      */
int print_file_info(char *filename){//定义结构体变量接受文件的属性struct stat buf;//printf("---%s---\n",filename);if(-1==stat(filename,&buf)){perror("stat");printf("%d",__LINE__);return -1;}//打印文件类型switch (buf.st_mode & S_IFMT) {case S_IFBLK:  printf("b");            break;case S_IFCHR:  printf("c");        break;case S_IFDIR:  printf("d");               break;case S_IFIFO:  printf("p");               break;case S_IFLNK:  printf("l");                 break;case S_IFREG:  printf("-");            break;case S_IFSOCK: printf("s");                  break;default:       printf("?");                break;}//打印文件权限for (int i=0; i<9; i++){if(0==(buf.st_mode & 0400>>i)){putchar('-');}else{if(i%3==0)putchar('r');else if(i%3==1)putchar('w');else if(i%3==2)putchar('x');elseputchar('?');}}//打印文件硬链接个数printf(" %ld ",buf.st_nlink);//打印用户名struct passwd* pwd=getpwuid(buf.st_uid);if(NULL==pwd){perror("getpwuid");printf("%d",__LINE__);return -1;}printf("%s ",pwd->pw_name);//打印用户所在组名struct group* grp=getgrgid(buf.st_gid);if(NULL==grp){perror("getgrgid");printf("%d",__LINE__);return -1;}printf("%s ",grp->gr_name);//打印文件大小printf("%5ld ",buf.st_size);//打印时间struct tm *time=localtime(&buf.st_atime);printf("%4d  %d %d:%d ",time->tm_mon+1,time->tm_mday,time->tm_hour,time->tm_min);//打印文件名printf(" %s\n ",filename);return 0;
}
/** function:    打印某个目录下的所有文件名()* @param [ in] * @param [out] * @return      */
int print_all_file(char *filepath){DIR * od=opendir(filepath);if(NULL==od){perror("opendir");printf("%d",__LINE__);return -1;}//读取文件,循环打印文件名struct dirent* rd=NULL;while(1){rd=readdir(od);if(NULL==rd)break;if('.'==rd->d_name[0])continue;char file[20]="";strcpy(file,filepath);//strcat(file,"/");strcat(file,rd->d_name);//printf("%s\n",file);print_file_info(file);}closedir(od);return 0;
}
int main(int argc, const char *argv[])
{puts("please input directory name you want to printf");char filepath[20]="";scanf("%s",filepath);print_all_file(filepath);//print_file_info("1.txt");return 0;
}

运行结果:

今日思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图文并茂】C++介绍之串

1.1串 引子—— ​ 字符串简称为串&#xff0c;串是由字符元素构成的&#xff0c;其中元素的逻辑关系也是一种线性关系。串的处理在计算机非数值处理中占用重要的地位&#xff0c;如信息检索系统&#xff0c;文字编辑等都是以串数据作为处理对象 串是由零个或多个字符组成的…

得心应手应对 OOM 的疑难杂症

Java全能学习面试指南&#xff1a;https://www.javaxiaobear.cn/ 前面我们提到&#xff0c;类的初始化发生在类加载阶段&#xff0c;那对象都有哪些创建方式呢&#xff1f;除了我们常用的 new&#xff0c;还有下面这些方式&#xff1a; 使用 Class 的 newInstance 方法。使用…

[Vue3 博物馆管理系统] 使用Vue3、Element-plus的Layout 布局构建组图文章

系列文章目录 第一章 定制上中下&#xff08;顶部菜单、底部区域、中间主区域显示&#xff09;三层结构首页 第二章 使用Vue3、Element-plus菜单组件构建菜单 第三章 使用Vue3、Element-plus走马灯组件构建轮播图 第四章 使用Vue3、Element-plus tabs组件构建选项卡功能 第五章…

PHP反序列化漏洞

一、序列化&#xff0c;反序列化 序列化&#xff1a;将php对象压缩并按照一定格式转换成字符串过程反序列化&#xff1a;从字符串转换回php对象的过程目的&#xff1a;为了方便php对象的传输和存储 seriallize() 传入参数为php对象&#xff0c;序列化成字符串 unseriali…

go gin gorm连接postgres postgis输出geojson

go gin gorm连接postgres postgis输出geojson 1. 技术环境 go-gin-gorm postgres-postgis go vscode环境安装-智能提示配置 2. 简单实现代码 思路就是&#xff1a;采用原生sql实现查询、更新等&#xff0c;采用gorm的raw来执行sql语句 package mainimport ("fmt"&q…

JavaScript 之 Symbol 数据类型

一、简介 ​ symbol类型是ES6新引入的一种基本数据类型&#xff0c;该类型具有静态属性和静态方法。其中静态属性暴露了几个内建的成员对象&#xff0c;静态方法暴露了全局的symbol注册。 ​ symbol类型具有以下特点&#xff1a;① 唯一性&#xff1a;每个symbol值都是唯一的…

JavaScript设计模式(四)——策略模式、代理模式、观察者模式

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

【MySQL基础】事务隔离03

目录 隔离性与隔离级别事务隔离的实现事务的启动方式MySQL事务代码示例 在MySQL中&#xff0c;事务支持是在引擎层实现的。MySQL是一个支持多引擎的系统&#xff0c;但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务&#xff0c;这也是 MyISAM 被 Inn…

29 | 聊聊性能测试的基本方法与应用领域

并发用户数、响应时间、系统吞吐量之间的关系 当系统并发用户数较少时&#xff0c;系统的吞吐量也低&#xff0c;系统处于空闲状态&#xff0c;这个阶段被称为 “空闲区间”。 并发用户数进一步增长&#xff0c;系统的处理能力逐渐趋于饱和&#xff0c;因此每个用户的响应时间会…

Java 日志技术

所以说&#xff0c;要学Logback&#xff01; 配置文件 Logback提供了一个核心配置文件logback.xml&#xff0c;日志框架在记录日志时会读取配置文件中的配置信息&#xff0c;从而记录日志的形式。 可以配置日志输出的位置是文件还是控制台可以配置日志输出的格式还可以配置日…

55、基于 WebFlux 开发 WebSocKet

★ 基于Web Flux开发WebSocket 两步&#xff1a; &#xff08;1&#xff09;实现WebSocketHandler开发WebSocket处理类。 实现该接口时只需要实现Mono handle(WebSocketSession webSocketSession)方法即可。 &#xff08;2&#xff09;使用HandlerMapping和WebSocketHandler…

【Arduino27】DHT11温湿度传感器模拟值实验

硬件准备 DHT11温湿度&#xff1a;1个 面包板&#xff1a;1个 杜邦线&#xff1a;3根 硬件连线 VDD引脚接 5V 电源 DATE引脚接 4号 接口 GND引脚接 GND 接口 软件程序 #include<DHT.h>#define DHT11_pin 4 //温湿度传感器引脚DHT dht(DHT11_pin,DHT11);float tem…

常用echart图总结

柱状图 - category-work,grid直角坐标,legend,series-bar柱状图,tooltip提示框 - makeapie echarts社区图表可视化案例

华为OD机试 - 最多颜色的车辆 - 数据结构map(Java 2022Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、核心思想2、题做多了&#xff0c;你就会发现&#xff0c;这道题属于送分题&#xff0c;为什么这样说&#xff1f;3、具体解题思路&#xff1a; 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B…

C++ 模板

模板&#xff1a; 模板&#xff0c;即数据是灵魂&#xff0c;其余为肉身&#xff0c;正所谓有趣的灵魂万里挑一&#xff0c;所以想要模板变得完美&#xff0c;关键在于数据&#xff1b;其余不过是抄作业的框架。 模板函数&#xff1a; 模板函数可以自动推导出你传给他的数据类型…

便捷高效的电能管理:利用PLC远程控制网关实时监控配电箱

配电箱是工业生产过程中必不可少的设备&#xff0c;其中的PLC&#xff08;可编程逻辑控制器&#xff09;是实现自动化控制的重要组成部分。为了实时监控配电箱的数据&#xff0c;并进行远程调试上下载与管理控制&#xff0c;我们可以使用PLC数据采集与远程控制网关。 PLC数据采…

2023年全国大学生数学建模B题

多波束测线问题 1.问题提出 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c;在不同界面上产生反射&#xff0c;利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信号&#xff0c;并记录从声波发射到信号接…

CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现

文章目录 CVE-2023-3836&#xff1a;大华智慧园区综合管理平台任意文件上传漏洞复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 CVE-2023-3836&#xff1a;大华智慧园区综合管理平台任意文件上传漏洞复现 0x01 前言 免责声…

0012Java程序设计-springboot基于微信小程序的校园智慧帮系统的设计与实现

摘要目录相关技术2.1 MySQL数据库2.2 SpringBoot框架2.3 uniapp框架2.4 B/S架构 系统设计系统实现开发环境 摘要 随着移动互联网高速发展&#xff0c;手机、移动智能终端设备在生活中有着越来越重要的地位。在高校推崇以人为本的今天&#xff0c;也逐渐重视“移动互联网”技术…

Java“牵手”1688商品详情数据,1688商品详情API接口,1688API接口申请指南

1688平台商品详情接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取1688商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口&#xff0c;通过…