linux c删除文件函数
Linux 用C修改配置文件中配置项

Linux 用C修改配置文件中配置项众所周知,在Linux 程序,Windows程序开发过程中,配置文件对软件重要性不言而喻!特别是在一个大型系统中更是无可替代。
简单的说,配置文件就是用来在程序启动的时刻,对程序中的全局变量进行初始化。
当然,在程序运行的过程中也是可以更改其全局变量的,但是,如果因为程序故障,服务器突然断电,重新启动程序后,之前的一些参数全部都丢失了,所以我们可以把一些重要的参数,在程序执行过程中会改变的参数,写在配置文件中,当一些重要参数改变后,直接把相应的配置项进行修改即可。
配置文件的修改步骤:∙找到配置项所在配置项∙找到要修改的key∙修改key对应的value∙保存修改∙示例代码如下:∙//本示例中给出的key为要修改的键,value 为修改后的值,对外只需要调用 intchgcfg(void*lbz)∙// 这个函数即可,使用此函数,可以根据个人需要自行修改!∙//**************************************************************** *∙//Author: helpylee (LiBangzhu)∙//Time: 2014-03-01∙//Address: Hangzhou∙//Email: helpylee@∙//**************************************************************** **int MyPopen(char*buff,const int maxlen,const char*cmd)//执行shell命令,把结果保存在buff所指向的内存中{FILE*read_fp;int chars_read;read_fp = popen(cmd, "r");if( NULL == read_fp ){perror("popen error");return-1;}chars_read = fread(buff, sizeof(char), maxlen, read_fp);if(chars_read< 0){printf("popen return NULL \n");return-2;}pclose(read_fp);buff=NULL;return0;}char* log_delblank(char*srcstr)// 删除 srcstr所指向的字符串中的空格,并返回无空格字符串{if(!srcstr)return NULL;char tmpstr[1024];char*p_src=srcstr;char*p_tmp=tmpstr;while(*p_src){if(*p_src=='#'){*p_tmp=0;break;}if(*p_src!=' '){*p_tmp=*p_src;p_tmp++;}p_src++;}strcpy(srcstr,tmpstr);return srcstr;}bool my_strstr(char* buf,char*t_key){if(buf&&t_key){char mb_key[100]={0};char ch_value[100]={0};char line_buf[200]={0};bzero(mb_key,100);bzero(ch_value,100);bzero(line_buf,200);strcpy(line_buf,buf);char*pp = log_delblank(line_buf);sscanf(pp,"%[^=]=%s",mb_key,ch_value);// cout<<"mb_key="<<mb_key<<endl;// cout<<"ch_value="<<ch_value<<endl;if(strncmp(mb_key,t_key,strlen(mb_key))==0){ //cout<<"return true"<<endl;return true;}else{ //cout<<"return false"<<endl;return false;}}}int chgcfg(void*lbz){struct stat s;//获取文件属性if(lstat("xxx.config",&s)<0){return-1;}int flen=s.st_size;//获取文件大小char* buf=(char*)malloc(flen+400); //申请存放文件内容的空间if(!buf)return-2;char cmd_out[200];bzero(cmd_out,sizeof(cmd_out));MyPopen(cmd_out,100,"cat xxx.config|grep key");if(my_strstr(cmd_out,"key")&&strlen(cmd_out)){FILE* fp = fopen("xxx.config","r");}else{reutrn -3;}char line[300];bzero(line,sizeof(line));int change_flag =-1;while(!feof(fp)){if(!fgets(line,sizeof(line),fp))continue;if(line[0]!='#'&& (my_strstr(line,"key"))) //对key进行第一次确认{char maybe_key[100]={0};char value[100]={0};//修改后的值char*pp = log_delblank(line);sscanf(pp,"%[^=]=%s",mb_key,ch_value); //把有可能修改前的参数存储起来if(strncmp(mb_key,”key“,(int)strlen(key))==0)//对key进行二次确认{sprintf(tmp,"%s = %s\n",”key“,”value“);//至此已经把想要修改的参数修改完毕了printf("test->string:%s,test->valuestring:%s\n",key,value);tmp+=strlen(tmp);change_flag=1; //标记是否修改了文件。
Linux学习笔记——rmdir命令和rm命令

■ rmdir命令[只适合删除空目录]功能是删除一个空的目录。
● -v 选项
提示删除操作成功,如图所示:
● -p 选项
如果一个目录及其子目录都是空的,其中在删除最子目录的时候,使用-p选项,则这些相关的目录都会被删除掉。
如图所示:
■ rm命令[多用于删除分空目录/文件]
功能是删除文件或者目录。
如果目录不为空的话,使用rm命令,配置必要的选项就能够实现删除非空目录。
● -v 选项
可以直接删除一个或者多个文件,并且使用-v选项给予提示。
如图所示:
当然,也可以使用通配符来指定要删除的文件。
例如删除文件名以c结尾,扩展名为dic的文件,如图所示:
● -f 选项
不管要删除的目录是否存在,都执行,不给予提示。
假设/mydir/noedir 根本不存在,但是删除时指定为这个目录,使用-f选项就可以不提示目录不存在的错误。
如图所示:
● -r 选项
该选项实现删除指定目录下的所有文件。
如图所示:
● 组合选项
如果要删除一个非空的目录,就需要使用-r和-f选项组合,或者直接使用-rf选项。
一个例子,如图所示:。
linux中rm -f的用法

linux中rm -f的用法
在Linux系统中,`rm`命令用于删除文件或目录。
`rm -f`命令是`rm`命令的一个选项,用于强制删除文件或目录,无论是否存在其他权限或者保护措施。
具体来说,`-f`选项告诉`rm`命令在删除文件时不进行任何确认提示,即使文件是只读或者没有写权限,也能够强制删除。
但是在使用`rm -f`命令时需要非常小心,因为删除的文件将不会被移动到垃圾箱而是永久删除,且无法恢复。
除了`-f`选项,`rm`命令还支持其他选项,常用的有:
- `-r`:递归删除目录及其内容。
如果要删除目录,必须使用该选项。
- `-i`:删除文件之前进行确认提示。
- `-v`:显示详细的删除过程。
- `-d`:删除空目录。
需要注意的是,`rm -f`命令删除文件时不会显示任何确认提示,因此使用时必须非常谨慎,避免不小心删除了重要文件。
可以先使用
`ls`命令检查要删除的文件是否正确,并且谨慎使用通配符来避免误删除其他文件。
如果不确定要删除的文件是否正确,可以使用`rm -i`命令来进行确认提示,以便避免出现错误。
Linux下的C编程实战

一、开发平台搭建1.引言Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。
而近年来,Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。
在嵌入式操作系统方面,Linux的地位是不容怀疑的,它开源、它包含TCP/IP协议栈、它易集成GUI。
鉴于Linux操作系统在服务器和嵌入式系统领域愈来愈广泛的应用,社会上越来越需要基于Linux操作系统进行编程的开发人员。
浏览许多论坛,经常碰到这样的提问:“现在是不是很流行unix/linux下的c编程?所以想学习一下!但是不知道该从何学起,如何下手!有什么好的建议吗?各位高手!哪些书籍比较合适初学者?在深入浅出的过程中应该看哪些不同层次的书?比如好的网站、论坛请大家赐教!不慎感激!”鉴于读者的需求,在本文中,笔者将对Linux平台下C编程的几个方面进行实例讲解,并力求回答读者们关心的问题,以与读者朋友们进行交流,共同提高。
在本文的连载过程中,有任何问题或建议,您可以给笔者发送email:21cnbao@,您也可以进入笔者的博客参与讨论:/21cnbao。
笔者建议在PC内存足够大的情况下,不要直接安装Linux操作系统,最好把它安装在运行VMWare 虚拟机软件的Windows平台上,如下图:在Linux平台下,可用任意一个文本编辑工具编辑源代码,但笔者建议使用emacs软件,它具备语法高亮、版本控制等附带功能,如下图:2.GCC编译器GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:gcc [options] [filenames]options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个会被频繁使用,我们仅对几个常用选项进行介绍。
VC删除文件或文件夹内容

VC删除⽂件或⽂件夹内容1.删除指定⽂件第⼀种⽅法:定义⼀个⽂件类对象来操作CFile TempFile;TempFile.Remove(指定⽂件名);第⼆种⽅法:DeleteFile("c:\\abc\\test.exe ");//MFC框架中可直接调⽤此函数2.删除⽬录_rmdir()DeleteDirectory(sTempDir)RemoveDirectory(sTempDir)//删除⽂件夹⽬录(⾮空)⽅法⼀ bool DeleteDirectory( CString DirName){AfxMessageBox("执⾏删除⽂件夹:"+DirName);CString PUBPATH;PUBPATH=DirName;CFileFind tempFind;DirName+="\\*.*";BOOL IsFinded=(BOOL)tempFind.FindFile(DirName);while(IsFinded){IsFinded=(BOOL)tempFind.FindNextFile();if(!tempFind.IsDots()){CString strDirName;strDirName+=PUBPATH;strDirName+="\\";strDirName+=tempFind.GetFileName();AfxMessageBox("strDirName :"+strDirName);if(tempFind.IsDirectory()){//strDirName += PUBPATH;DeleteDirectory(strDirName);}else{SetFileAttributes(strDirName,FILE_ATTRIBUTE_NORMAL); //去掉⽂件的系统和隐藏属性DeleteFile(strDirName);}}}tempFind.Close();if(!RemoveDirectory(PUBPATH)){return false ;}AfxMessageBox("⽂件夹删除成功...");return true;}⽅法⼆bool DeleteDirectory( char* DirName){HANDLE hFirstFile = NULL;WIN32_FIND_DATA FindData;char currdir[MAX_PATH] = {0};sprintf(currdir, "%s\\*.*", DirName);hFirstFile = ::FindFirstFile(currdir, &FindData);if( hFirstFile == INVALID_HANDLE_VALUE )return false;BOOL bRes = true;while(bRes){bRes = ::FindNextFile(hFirstFile, &FindData);if( (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) //发现⽬录{if( !strcmp(FindData.cFileName, ".") || !strcmp(FindData.cFileName, "..") ) //.或.. continue;else{char tmppath[MAX_PATH] = {0};sprintf(tmppath, "%s\\%s", DirName, FindData.cFileName); DeleteDirectory(tmppath);}}else //发现⽂件{char tmppath[MAX_PATH] = {0};sprintf(tmppath, "%s\\%s", DirName, FindData.cFileName);::DeleteFile(tmppath);}}::FindClose(hFirstFile);if(!RemoveDirectory(DirName)){return false ;}return true;}。
linux c语言好玩的代码

linux c语言好玩的代码Linux是一个开源的操作系统,广泛应用于各个领域,包括嵌入式系统、服务器和个人电脑等。
作为一名程序员,在Linux下编写C 语言代码可以让我们更好地探索和发挥操作系统的能力。
下面我将介绍一些在Linux下编写的有趣的C语言代码。
1. 网络爬虫网络爬虫是一种自动化程序,用于从互联网上获取数据。
在Linux 下使用C语言编写一个简单的网络爬虫是一项有趣的挑战。
我们可以使用libcurl库来发送HTTP请求,获取网页内容,并解析HTML 标签,提取出我们需要的数据。
例如,我们可以编写一个简单的爬虫程序,获取某个网站上的新闻标题,并将其输出到终端窗口。
2. 游戏开发C语言是游戏开发领域的一种常用语言,因为它具有较高的性能和灵活性。
在Linux下使用C语言编写游戏代码可以让我们体验到游戏引擎的开发过程。
我们可以使用OpenGL库来进行图形渲染,使用SDL库来处理音频和输入设备。
通过编写一些简单的游戏代码,我们可以学习到游戏物理模拟、碰撞检测等基本概念。
3. 多线程编程在Linux下,我们可以使用C语言的pthread库来进行多线程编程。
多线程编程可以将任务分成多个子任务,并发执行,以提高程序的性能。
我们可以编写一个简单的多线程程序,比如一个计算素数的程序。
通过将任务分配给多个线程,每个线程负责计算一部分素数,然后将结果合并起来,我们可以提高计算效率。
4. 文件系统操作Linux下的文件系统提供了丰富的API,我们可以使用C语言来进行文件的读写、目录的遍历等操作。
我们可以编写一个简单的文件管理器,实现文件的复制、移动、删除等功能。
通过使用C语言的文件操作函数,我们可以更好地理解文件系统的工作原理。
5. Shell脚本解释器Shell脚本是一种用于自动化任务的脚本语言,而Shell脚本解释器则是用于解释和执行Shell脚本的程序。
我们可以使用C语言编写一个简单的Shell脚本解释器,实现基本的命令解析和执行功能。
Linux(CC++)下的文件操作open、fopen与freopen

Linux(CC++)下的⽂件操作open、fopen与freopenopen是下的底层系统调⽤函数,fopen与freopen c/c++下的标准I/O库函数,带输⼊/输出缓冲。
linxu下的fopen是open的封装函数,fopen最终还是要调⽤底层的系统调⽤open。
所以在linux下如果需要对设备进⾏明确的控制,那最好使⽤底层系统调⽤(open),open对应的⽂件操作有:close, read, write,ioctl 等。
fopen 对应的⽂件操作有:fclose, fread, fwrite, freopen, fseek, ftell, rewind等。
freopen⽤于重定向输⼊输出流的函数,该函数可以在不改变代码原貌的情况下改变输⼊输出环境,但使⽤时应当保证流是可靠的。
详细见第3部分。
-------------------------------------------------------------------------------------------------------------------open和fopen的区别:1,fread是带缓冲的,read不带缓冲.2,fopen是标准c⾥定义的,open是POSIX中定义的.3,fread可以读⼀个结构.read在linux/unix中读⼆进制与普通⽂件没有区别.4,fopen不能指定要创建⽂件的权限.open可以指定权限.5,fopen返回⽂件指针,open返回⽂件描述符(整数).6,linux/unix中任何设备都是⽂件,都可以⽤open,read.-------------------------------------------------------------------------------------------------------------------1、open系统调⽤(linux)需要包含头⽂件:#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>函数原型:int open( const char * pathname, int oflags);int open( const char * pathname,int oflags, mode_t mode);mode仅当创建新⽂件时才使⽤,⽤于指定⽂件的访问权限。
linux的删除命令

linux的删除命令Linux系统下我们经常使用到删除操作,那么它是由哪个命令发起的呢?面由店铺为大家整理了linux的删除命令的相关知识,希望对大家有帮助!linux的删除命令详解rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。
所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
1.命令格式:rm [选项] 文件…2.命令功能:删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。
如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
3.命令参数:-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤--help 显示此帮助信息并退出--version 输出版本信息并退出linux的删除命令实例实例一:删除文件file,系统会先询问是否删除。
命令:rm 文件名输出:[root@localhost test1]# ll总计 4-rw-r--r-- 1 root root 56 10-26 14:31 log.logroot@localhost test1]# rm log.logrm:是否删除一般文件“log.log”? yroot@localhost test1]# ll总计 0[root@localhost test1]#说明:输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux c删除文件函数
Linux C语言中有多种方式可以删除文件,本文将介绍其中的几种常用方法,包括使用系统调用函数unlink()、remove()和使用命令行工具rm。
这些方法可以帮助用户在Linux系统中轻松删除文件。
一、使用系统调用函数unlink()
unlink()函数用于删除指定的文件,其原型如下:
```
int unlink(const char *pathname);
```
其中,pathname为要删除的文件的路径。
使用unlink()函数删除文件的示例代码如下:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
if (unlink("file.txt") == 0) {
printf("文件删除成功!\n");
} else {
perror("文件删除失败");
}
return 0;
}
```
该示例代码中,unlink()函数被用来删除名为file.txt的文件。
如果文件删除成功,程序将打印出"文件删除成功!",否则将打印出相应的错误信息。
二、使用系统调用函数remove()
remove()函数也可以用来删除文件,其原型如下:
```
int remove(const char *pathname);
```
该函数与unlink()函数的功能类似,不同之处在于,remove()函数在删除文件时还会检查文件的权限。
使用remove()函数删除文件的示例代码如下:
```c
#include <stdio.h>
int main() {
if (remove("file.txt") == 0) {
printf("文件删除成功!\n");
} else {
perror("文件删除失败");
}
return 0;
}
```
该示例代码中,remove()函数被用来删除名为file.txt的文件。
如果文件删除成功,程序将打印出"文件删除成功!",否则将打印出相应的错误信息。
三、使用命令行工具rm
除了使用系统调用函数外,还可以通过命令行工具rm来删除文件。
rm命令的用法如下:
```
rm [选项] 文件名
```
其中,选项是可选的,可以用来指定删除文件的方式,如-r用于删除目录及其内容。
使用rm命令删除文件的示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
if (system("rm file.txt") == 0) {
printf("文件删除成功!\n");
} else {
perror("文件删除失败");
}
return 0;
}
```
该示例代码中,system()函数被用来执行rm命令来删除名为file.txt 的文件。
如果文件删除成功,程序将打印出"文件删除成功!",否则将打印出相应的错误信息。
总结:
本文介绍了在Linux C语言中删除文件的几种方法,包括使用系统调用函数unlink()、remove()和使用命令行工具rm。
这些方法都可以实现文件的删除操作,具体选择哪种方法取决于个人的需求和习惯。
无论是使用系统调用函数还是命令行工具,都可以轻松地在Linux系统中删除文件。
希望本文对读者有所帮助!。