嵌入式学习28(linux系统函数之文件、文件夹管理相关函数)
2017-08-27 14:32
555 查看
步入linux系统函数的学习了,随时随地都要man一下,忌死记。
linux系统调用:即linux操作系统提供的函数,只能用于linux。
命令就是一些函数
1)文件系统管理相关的系统调用
文件相关操作
file:存放在外存设备上的一堆数据(内存和外存的交互,外存数据存取慢)
普通文件操作:(open read write lseek close) 辅助函数(stat chmod chown remove )
示例代码:求文件的md5加密
文件夹相关操作(opendir readdir closedir)
linux系统调用:即linux操作系统提供的函数,只能用于linux。
命令就是一些函数
1)文件系统管理相关的系统调用
文件相关操作
file:存放在外存设备上的一堆数据(内存和外存的交互,外存数据存取慢)
普通文件操作:(open read write lseek close) 辅助函数(stat chmod chown remove )
示例代码:求文件的md5加密
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include "md5.h" //#define _DEBUG 便于调试 int get_file_size(const char* name); int main(int argc,char** argv) { if(argc!=2) { fprintf(stderr,"参数个数错误!\n");//标准错误打印 return -1; } //open函数的返回值为文件描述符,用来唯一的标识打开的文件 int fd=open(argv[1],O_RDONLY); if(-1==fd) { perror("open");//自动添加冒号和原因 } int len;//存放文件长度 len=get_file_size(argv[1]); char* buf=malloc(len); read(fd,buf,len);//把文件存到内存 #ifdef _DEBUG printf("文件长度: %d\n文件内容:\n%s",len,buf); #endif char* md5_val=md5_encrypt(buf,len); printf("%s\n",md5_val); free(buf); close(fd); return 0; } int get_file_size(const char* name) { struct stat st; if(-1==stat(name,&st))//stat可以求出一个文件的所有信息 { perror("get_file_size");//系统打印错误//打印 return -1; } return st.st_size; }
文件夹相关操作(opendir readdir closedir)
//文件夹的遍历 #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> void main(int argc,char** argv) { if(2!=argc) { printf("参数不足\n"); return; } DIR* dir=opendir(argv[1]); if(dir==NULL) { // fprintf(stderr,"opendir:%s\n",strerror(errno)); // strerror可以将错误代号翻译成一串字符串,errno用于存放最近一次的错误 perror("opendir");//errno is set appropriately return; } struct dirent* rp=NULL; struct stat st;//stat中含有文件详细信息 char name[100]; while(rp=readdir(dir))//while(后接表达式) { sprintf(name,"%s/%s",argv[1],rp->d_name); stat(name,&st); if(S_ISDIR(st.st_mode)) continue; if(strcmp(rp->d_name,".")!=0 && strcmp(rp->d_name,"..")!=0) printf("%s\n",rp->d_name); } closedir(dir); }
相关文章推荐
- shell学习:Linux系统日志的相关命令、文件和管理工具
- Linux学习记录--文件管理相关系统编程
- Linux学习记录--文件管理相关系统编程
- Tiny6410学习ing—(二)、嵌入式Linux应用开发—(2)、文件编辑(系统调用方式访问文件)—①
- linux 文件管理相关函数介绍
- Linux命令学习3—Linux磁盘与文件系统管理
- 【Linux学习记录】Linux磁盘与文件系统管理
- linux系统管理学习笔记之八---linux文件与目录的管理及权限
- Linux 学习笔记_9_文件系统管理_2_文件系统管理命令及案例分析
- Linux01-Linux磁盘及文件系统管理基础知识28
- Linux鸟哥私房菜学习笔记_第八章Linux磁盘与文件系统管理
- 在VM上学习嵌入式Linux系统的构建之二--内存文件系统
- Linux 学习笔记_9_文件系统管理_3_/etc/fstab文件分析与磁盘配额应用
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】揭开Linux Proc文件系统的神秘面纱
- Linux 学习笔记_9_文件系统管理_4_文件备份
- Linux 学习笔记_9_文件系统管理_1_Linux文件系统构成
- 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux基础知识学习笔记(一)--文件系统的权限管理
- 嵌入式Linux文件系统及其存储机制分析 - farsight嵌入式学习专栏 - CSDNBlog
- IBM UNIX & LINUX -AIX 5L 系统管理技术 学习笔记1 -网络文件系统 NFS network file system