Linux 文件管理(C语言库函数三)
2024-08-27 06:08:53
找到当前目录
char *getcwd(char * buf,size_t size)
getcwd函数把当前工作目录的绝对路径名复制到buf中,size指示buf的大小
如果buf不够大,不能装下整个路径名,getcwd返回NULL。
当前目录是指当前页面所在的目录,不是指程序所在的目录,相当于"pwd"命令
//getcwd()
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h> int main(int arg, char * args[])
{
//获取当前目录
char buf[]={};
/*
getcwd()函数头文件是unistd.h
*/
char *res=getcwd(buf,sizeof(buf));
if(res)
{
printf("%s\n",buf);
}
return ;
}
获取目录列表
--用opendir函数打开目录文件
--用readdir函数读出目录文件内容
--用closedir函数关闭目录文件。
--这些函数都在<dirent.h>头文件中声明
DIR *opendir(const char *name);
struct dirent *readdir(DIR *dirp);
int closedir(DIR *dirp);
opendir函数打开pathname指向的目录文件,如果错误返回NULL
创建目录--暂时只能手动创建,我还没有好办法
struct dirent {
ino_t d_ino; /* inode number */
off_t d_off; /* offset to the next dirent */
unsigned short d_reclen; /* length of this record */
unsigned char d_type; /* type of file; not supported
by all file system types */
char d_name[]; /* filename */
};
//opendir(),readdir(),closedir()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <dirent.h> int main(int arg, char * args[])
{
if(arg<)
{
printf("请输入一个参数!\n");
return ;
}
//创建一个目录指针
DIR *dp=NULL;
//定义目录结构指针
struct dirent *drp=NULL;
//打开一个目录
dp=opendir(args[]);
if(dp==NULL)
{
printf("error msg:%s\n",strerror(errno));
return ;
}
/*
drp=readdir(dp)这是赋值操作
while判断是drp对象是否为空
readdir(dp)读出目录文件内容,返回值是struct dirent结构体对象指针
*/
while((drp=readdir(dp))!=NULL)
{
//注意:struct dirent在windows和Linux下的定义不同
printf("%s\n",drp->d_name);
}
//关闭目录指针
if(dp!=NULL)
closedir(dp);
return ;
}
最新文章
- maven权威指南学习笔记(五)—— POM
- 备忘-Android ViewPager 与Gallery滑动冲突解决方法
- mysql在同一个表上查询和更新
- final关键字
- 20145227&;20145201 《信息安全系统设计基础》实验二 固件开发
- Win10走红背后,最开心的人却是谷歌
- Lintcode: O(1) Check Power of 2
- linux之od命令
- ### C++总结-[类成员函数]
- Unity: How to build and debug external DLLs
- 日积月累:EditText软键盘的显示和隐藏
- URAL DP第一发
- TCPDump 抓Loopback数据包
- Java数据结构和算法(五)——队列
- python数据类型——字典类型
- Docker 发布 Abp net core web 服务
- 深入理解JVM(七)——性能监控工具
- 笔记 : CSS3实现背景渐变过渡
- 3.5星|《硅谷产品》:Facebook网红社区产品经理经验谈
- 9th 学习博客:使用Codebloks实现C++的图形化界面