linux系统调用之文件:递归删除非空目录

Linux 如何使用函数删除非空目录 【代码】Linux 如何使用函数删除非空目录。 阅读详情
  1. #include <sys/types.h>  
  2. #include <dirent.h>  
  3. #include <stdio.h>  
  4. #include <stdlib.h>  
  5. #include <string.h>  
  6. #include <sys/stat.h>  
  7. #include <unistd.h>  
  8. #define BUF_LEN 1024  
  9.   
  10. //int stat(const char *path, struct stat *buf);  
  11. //int fstat(int filedes, struct stat *buf);  
  12. //int lstat(const char *path, struct stat *buf);  
  13.   
  14. //int remove(const char *pathname);  
  15. //struct dirent *readdir(DIR *dir);  
  16. //DIR *opendir(const char *name);  
  17.   
  18. void rm(char * name)  
  19. {  
  20.     DIR *dir;  
  21.     struct dirent *read_dir;  
  22.     struct stat st;  
  23.     char buf[BUF_LEN];  
  24.   
  25.     if(lstat(name, &st) < 0)  
  26.     {  
  27.         fprintf(stderr, "Lstat Error!/n");  
  28.         exit(1);  
  29.     }  
  30.   
  31.     if(S_ISDIR(st.st_mode))  
  32.     {  
  33.         if((dir = opendir(name)) == NULL)  
  34.         {  
  35.             fprintf(stderr, "remove [%s] faild/n", name);  
  36.             exit(1);  
  37.         }  
  38.       
  39.         while((read_dir = readdir(dir)) != NULL)  
  40.         {  
  41.             if(strcmp(read_dir->d_name, ".") == 0 ||  
  42.                 strcmp(read_dir->d_name, "..") == 0)  
  43.                 continue;  
  44.             sprintf(buf, "%s/%s", name, read_dir->d_name);  
  45.             rm(buf);  
  46.         }  
  47.     }  
  48.     printf("rm :%s/n", name);  
  49.     if(remove(name) < 0)  
  50.     {  
  51.         fprintf(stderr, "remove [%s] faild/n", name);  
  52.     }  
  53. }  
  54.   
  55. int main(int argc, char **argv)  
  56. {  
  57.     if(argc < 1)  
  58.     {  
  59.         fprintf(stderr, "Usage <%s><file>/n", argv[0]);  
  60.     }  
  61.     rm(argv[1]);  
  62.   
  63.     return 0;  
  64. }  
CA51F3系列(国产)+低功耗模式 CA51F351P6芯片是基于1T 8051内核的8位微控制器,通常情况下,运行速度比传统的8051芯片快10倍,性能更加优越。内置8K Flash程序存储器,可多次重复编程的特性给用户开发带来了极大的方便。不仅保留了传统8051芯片的基本特性,还集成了12Bit ADC、LCD/LED驱动、Touch Key、16Bit PWM、 UART、RTC、低电压检测(LVD)等功能模块。支持IDLE、STOP和低速运行三种省电模式以适应不同功耗要求的应用。 阅读详情

相关推荐

01-SA8155 QNX 虚拟机Hypervisor

Hypervisor运行在Host OS操作系统上,其他操作系统均在Hypervisor上运行。:Hypervisor直接运行在硬件上,操作系统在Hypervisor之上运行。终止(关闭):echo control 0 dev/vmm。路径:qnx_ap/AMSS/platform/vm/resources/关闭/终止 qvm(GVM):slay -s SIGQUIT qvm。", //host PVM --- 主机。不直接操作/dev/vmm 实现关闭,启动vm。

静虚待令,有物混成 1万+

linux常用指令讲解

文章目录 前言 一、指令详解 总结 前言 Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。 GNU通用公共许可协议(GNU General Public License

Sxy_wspsby的博客 2608

深入解析SSD报错“READ FPDMA QUEUED”:从诊断到修复全流程

本文深入解析了SSD报错“READ FPDMA QUEUED”的含义、成因与全流程解决方案。该错误通常指示硬盘硬件或健康状态问题。文章详细介绍了如何通过系统日志定位错误、解读关键的S.M.A.R.T.健康报告(重点关注重分配扇区计数等指标),并逐步进行硬件排查(如更换SATA数据线)、软件修复与数据抢救,最终指导用户根据诊断结果做出维修或更换SSD的决策。

weixin_29233333的博客 395

Linux 使用C语言删除一个非空的目录

Linux 使用C语言删除一个非空的目录原理以及代码示例

小立仔 1329

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 415

uni-app - 解决 H5 微信公众号授权登录后,无法回退到 “上一页“ 的问题(微信登录后如何返回到触发它的那一页?无法通过 uni.navigateBack() 返回到前一页的问题?)详细教程

uniappH5微信登录重定向后无法返回到原来进入前的页面了,uni-appH5微信浏览器中授权微信登录后,无法正常回退问题,uniappH5微信登录后怎么返回上一页,uniapp公众号登陆后使用uni.navigateBack()回不去上一页,uniapp微信登录成功后返回页面后一直自动刷新页面,uniapph5授权成功后如何返回上一页,uniappH5微信登录后怎么返回到触发它的那一页去,公众号h5在授权后如何跳转回到刚进入时的页面,微信公众号H5网页返回上一页疑问,解决微信H5静默授

🏆 前端领域优质创作者 7714

Linux文件目录 --- 删除空白目录rmdir、递归删除

在使用rmdir命令时,须确保删除的目标目录是空目录。如果路径错误或目标目录中存在文件或子目录,rmdir命令可能无法正常执行。rmdir [选项] 目录。

fnd_LN的博客 631

第七篇:A133 Android 10 触摸提示音过大

描述: 开启触摸提示音功能之后,客户反馈触摸提示音过大,需要改小。 解决方案: 看代码注释,在framework下搜索方法即可。 /** @see AudioManager#playSoundEffect(int) */ public void playSoundEffect(int effectType) { playSoundEffectVolume(effectType, -1.0f); } /** @see AudioManager#playSoundEff

qq_33088619的博客 1696

1. Linux常用命令

Linux学习

weixin_59067508的博客 1113

Ascend开发包Acllite安装

设置环境变量,配置程序编译依赖的头文件,库文件路径。“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。将YOLOV7原始模型转换为适配昇腾310处理器的离线模型(*.om文件),放在model路径下。运行完成后,会在样例工程的out目录下生成推理后的图片,显示对比结果如下所示。可以使用以下两种方式下载,请选择其中一种进行源码准备。请从以下链接获取该样例的输入图片,放在data目录下。执行以下命令,执行编译脚本,开始样例编译。执行运行脚本,开始样例运行。

如果想成为中心,那么就到中心去吧。 316

Python 爬虫进阶技巧:新手必学的反爬突破与效率优化

本文系统总结了爬虫进阶的核心技巧,针对新手常见的反爬拦截、效率低下、动态页面解析等痛点问题,提出了可落地的解决方案。主要内容包括:通过随机UA池、代理IP池和Cookie池突破常见反爬机制;利用多线程/异步请求提升爬取效率;使用Selenium解析动态渲染页面;以及数据清洗方法提升数据质量。文中提供了完整的代码示例和实战对比数据,并强调爬虫开发应遵守合规性要求。这些技巧能帮助开发者快速提升爬虫实战能力,应对80%以上的常见爬取需求。

2503_91057718的博客 1435

linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录

平时一般使用php脚本实现一些文件管理功能,总归没有shell脚本强大,虽然本人不会写shell脚本,但是读懂shell脚本还是没问题的。对于“递归删除空目录”这样简单的功能使用php来写有点麻烦,从网上搜到这样一个shell脚本实现非常简单:#!/bin/bash#author:十年后的卢哥哥#des:deleteemptydirectoriesrecursivedeleteemp...

weixin_29147045的博客 1135

【花雕学编程】Arduino动手做(249)---ESP32+GC9A01之播放GIF的空战锁定动画

摘要: 本实验基于ESP32开发板,驱动1.28寸圆形IPS彩色TFT显示屏(GC9A01驱动,240×240分辨率),通过SPI接口实现GIF动画播放。利用TFT_eSPI和AnimatedGIF库,成功加载并循环播放预置的科幻风格GIF动画(如HUD界面、X翼战机等)。代码实现了GIF解码、逐帧渲染及动态显示功能,通过串口调试监控运行状态。实验验证了该显示屏在动态图像显示中的流畅性,为嵌入式图形应用提供了实用方案,适用于智能穿戴、交互设备等场景。 关键词: ESP32、GC9A01、圆形TFT、GIF播

雕爷学编程 491

如何删除linux系统下的非空目录

标题: 如何删除linux系统下的非空目录 删除目录的常用shell命令为: rm rm 是一个用于删除文件和目录的命令行实用程序。与命令不同 rmdir, rm 可以删除空目录和非空目录。 默认情况下,在没有任何选项的情况下使用时 rm 不会删除目录 如下图所示: 首先,先查看一下我们有几个目录: 有两个=>分别是:First_linux_progarm 与 test1 尝试使用rm删除test1 如何删除linux系统下的空目录? =>如果要删除空目录,请使用 -d(–dir) 选项

敖丙007的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

删除非空目录linux_如何在Linux中删除空的非空目录

删除非空目录linuxLinux file system consist of directories. A system administrator generally work with directories and related operations. In this tutorial we will look how to delete empty or nonempty linux ...

cunjiu9486的博客 3440

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux :: 【基础指令篇 :: 文件及目录操作:(6)】:: rmidr / rm:删除空目录、删除非空目录及删除文件指令

本篇内容主要介绍了Linux的基本删除指令:rmdir / rm;并进行了相关指令的测试:如删除空目录/文件,删除非空目录,递归删除目录,删除提示设置等!在一般学习过程中我们操作的文件或目录都是我们自己创建的,所以有直接操作权限,但是在协同开发中可能存在其他用户创建的文件是被保护的,我们删除时会有提示!

weixin_53202576的博客 6675

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C语言实现Linux下删除非空目录

Linux C语言 删除非空目录

雪狼的博客 1万+

几种删除Linux目录的方法

在Linux中有很多方法可以删除目录,在图形化界面可以利用文件管理器,或者通过终端删除。本文将介绍在文本界面使用命令删除目录。 在Linux中有很多方法可以删除目录,在图形化界面可以利用文件管理器,或者通过终端删除。本文将介绍在文本界面使用命令删除目录。 使用rmdir删除目录 Rmdir命令间成“remove directory”,用于删除空目录的命令。 例如,删除一个名为“MyDocuments”的空目录: [root@localhost test]# rmdir MyDocuments

YHJ 5万+

Linux rmdir命令:删除空目录

和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为: [root@localhost ~]# rmdir [-p] 目录名 -p 选项用于递归删除空目录。 【例 1】 [root@localhost ~]#rmdir cangls 就这么简单,命令后面加目录名称即可,但命令执行成功...

大数据linux基础学习 5557

linux删除目录非空,linux中RM命令删除目录与非空目录 linux操作系统 -电脑资料

在linux中删除目录的方法有几个不同的命令,如rmdir这个只能删除空目录,如果想删除非空目录我们需要使用白领命令来实现,下面我来给大家介绍介绍,rm命令在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不...

weixin_34817716的博客 2505

linux组合命令:删除一个目录树中所有的空目录(包括嵌套空目录)

在做linux运维时,经常要安装或卸载软件包,或者移动或删除文件夹时,经常会留下一些空目录。这些空目录不再有用,为了保持文件系统的整洁,需要将它们清理掉。有时候这些目录有一些嵌套,进入每个目录删除,比较麻烦,本文通过find和rmdir,可以实现删除所有目录,但是每次只删除一个层级的目录,使用find搭配-delete,可以一次删除所有层级的目录。find命令用于在目录树中查找文件和目录。它可以根据各种条件进行搜索,包括文件名、权限、用户和组、文件类型、文件大小、日期和时间等。

weixin_70208651的博客 2175

Linux rmdir --删除空目录

昨天学习了创建文件和目录的命令rm,今天学习一下linux中命令:rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - rdir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。 1.命令格式: rmdir [选项]... 目录... 2.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某

老莫小小朋友 4573

Linux 创建目录和删除空目录

Linux 创建目录和删除空目录

m0_57521082的博客 2万+

linux命令:用于删除空目录的命令行工具rmdir详细介绍

rmdir 是一个在 Linux 和其他类 Unix 操作系统中常用的命令行工具,用于删除空目录。与 rm 命令不同的是,rmdir 只能删除空目录,而不支持删除包含文件或子目录的目录。如果想删除非空目录,通常需要使用 rm 命令配合 -r(递归)选项。Rmdir的作用主要用于清理空目录。但如果 目录下还有其他文件或目录,rmdir 命令就会失败。此时,需要先删除 该录中的所有内容,然后再使用 rmdir 或者直接使用 rm -r 来删除整个目录。

weixin_70208651的博客 3985

linux 删除文件_Linux删除文件夹命令有哪些

今天要和大家分享的Linux常用命令是Linux删除文件夹命令,Linux删除文件夹很简单,常用的命令有rmdir和rm,以下分别介绍一下,大家根据情况选择使用即可。Linux删除文件夹命令有哪些①Linux删除文件夹命令:rmdirrmdir命令使用场景:当有空目录要删除时,可使用rmdir指令。若所给予的目录非空目录,则会出现错误信息。命令语法:rmdir [-p] [目录名]-p 删除指定目...

weixin_35777914的博客 4594

linux删除空目录的命令是,Linux删除空目录命令-linux rmdir命令详解-嗨客网

Linux删除空目录(rmdir)教程在Linux rmdir命令详解功能删除空目录,非空目录不可删除。语法rmdir [-p] dirname参数参数描述p递归创建所有目录。dirname需要删除的目录。说明rmdir 命令用于删除空目录,也可以递归删除空目录。Linux rmdir命令常用实例实例实例描述rmdir dirname删除空目录rmdir -p dirname1/dirname2递...

weixin_31349647的博客 1233
上一篇: linux下C语言中mkdir和rmdir函数
下一篇: linux下获取系统时间的方法
锜锜
博客等级 码龄18年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值