linux c 编程实战: 文件操作总结(四)
来源:互联网 发布:开源微信cms 编辑:程序博客网 时间:2024/06/05 08:05
目录操作
1.目录的创建和删除
- mkdir函数可以进行目录的创建
#include<sys/types.h>#include<sys/stat.h>int mkdir(const char * pathname, int mode)//新创建的目录所有者的uid和创建这个目录进程的uid是一样的,也就是说,如果父目录设置了st_gid位,则新创建的目录也具有st_gid位(设置该位后任何在此目录下创建的文件的组id和该目录的组id是一样的)//函数调用成功返回0,失败返回-1
- rmdir函数可以进行目录的删除
#include<unistd.h>int rmdir(const char * pathname)//只能删除空目录//函数调用成功返回0,失败返回-1
2.获取当前目录
- getcwd函数可以获取进程当前的工作目录
#include<unistd.h>char * getcwd(char * buf, int size)//getcwd会将当前工作目录的绝对路径复制到buf所指的地址空间之中//size为给buf分配的地址空间,若绝对路径的字符串长度超过size的大小,则函数返回NULL,如果size为0,则getcwd会根据绝对路径的长度自动分配大小给buf所指的内存空间,,如果参数buf是NULL,则函数会根据size的大小自动分配内存给buf所指的内存空间//函数执行成功返回将结果复制到参数buf所指的内存空间之中,失败返回NULL
3.设置工作目录
- chdir函数可以更改当前的工作目录
#include<unistd.h>int chdir(const char * pathname)int chdir(int fd)//函数只能改变进程当前的工作目录,它的作用和cd命令是不一样的,cd是切换目录,更改工作目录的意思是进程如果要创建一个文件,默认是创建到当前目录下的,但是更改了工作目录后,就会创建到你更改得那个目录之下//函数调用成功返回0,失败返回-1
4.获取目录信息
- opendir函数用来打开一个目录
#include<sys.types.h>#include<dirent.h>DIR * opendir(const char * pathname)//这个函数会打开参数pathname的指定目录,并如同open函数返回文件描述一样返回一个文件目录流,是DIR形态的,失败返回NULL
- readdir函数用来读取一个目录下的目录项信息
#include<sys/types.h>#include<dirent.h>struct dirent * readdir(DIR * dir)//struct dirent结构体中包含了四个成员,其中我感觉有用的就是d_name这个变量,它可以获取目录下文件的文件名,其他成员都有什么请大家自行百度,进行了解,只要大家知道常用的就行了//函数调用成功返回一个指向结构体的指针,失败返回-1
- closedir函数用来关闭dir指向的目录,执行成功返回0,当有错误时返回-1
#include<sys/types.h>#include<dirent.h>int closedir(DIR * dir)
对于上面三个函数的应用,附源码:
#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<dirent.h>#include<unistd.h>int my_readir(const char *path){ DIR *dir; struct dirent *ptr; if((dir=opendir(path))==NULL) { perror("opendir"); return -1; } while((ptr=readdir(dir))!=NULL) { printf("filename:%s\n",ptr->d_name); } closedir(dir); return 0;}int main(int argc,char **argv){ if(argc<2) { printf("listfile <target path>\n"); exit(1); } if(my_readir(argv[1])==-1) { exit(1); } return 0;}
1 0
- linux c 编程实战: 文件操作总结(四)
- linux c 编程实战:文件操作总结(一)
- linux c 编程实战:文件操作总结(二)
- linux c 编程实战:文件操作总结(三)
- linux c 编程实战:进程控制总结(四)
- Linux C编程实战——第六章 文件操作
- linux c 关于文件操作的编程总结
- linux c 编程实战:进程控制总结(一)
- linux c 编程实战:进程控制总结(二)
- linux c 编程实战:进程控制总结(三)
- linux-C编程-文件操作
- linux-C编程-文件操作
- [Linux C编程]文件操作
- [Linux C编程]文件操作
- [Linux C编程]文件操作
- Linux-C成长之路(四)Linux C编程实战之路 运算符
- C Linux 文件操作总结
- Linux c文件操作总结
- java基础Review One
- 开源 java CMS - FreeCMS2.5 标签 infoPage
- Linux IP地址配置
- su - postgres时,显示为bash-4.2$如何解决
- JAVA(四)java基本的数据类型,运算符
- linux c 编程实战: 文件操作总结(四)
- AD10打开protel的“.DDB”格式文件和结构文件(DXF)的方法
- Mysql分区表
- S_ISREG等几个常见的宏 struct stat
- Linux系统修改文件读写权限chmod、所有者或组chown
- River Hopscotch
- 简单C/S系统(线程池+心跳检测+多线程+滚动日志)
- java对象数组
- Mysql性能优化