站长工具关键词,民治做网站的公司,中国电商网站排名,wordpress申请表单一 readlink 命令 前面知道#xff0c;如果a.soft是一个软链接#xff0c;我们使用 cat a.soft,会直接查看这个软链接指向的文件 那么我们就是想看这个软链接是啥#xff0c;可以使用 readlink a.soft 二 获取工作目录 getcwd函数 获取进程当前工作目录 (卷3#xff0c;标…一 readlink 命令 前面知道如果a.soft是一个软链接我们使用 cat a.soft,会直接查看这个软链接指向的文件 那么我们就是想看这个软链接是啥可以使用 readlink a.soft 二 获取工作目录 getcwd函数 获取进程当前工作目录 (卷3标库函数)
size 为buf 的大小。
char *getcwd(char *buf, size_t size); 成功buf中保存当前进程工作目录位置。失败返回NULL。
成功则 将buf中的数据 作为返回值返回也就是说在成功的情况下返回值和buf中的值是一样的。
失败则返回 NULL一般当size 不够大放不下的时候就会返回null 三 改变当前进程的工作目录 改变当前进程的工作目录
int chdir(const char *path); 成功0失败-1设置errno为相应值 int main() {char nowpath[128];getcwd(nowpath,sizeof(nowpath));cout nowpath nowpath endl;int ret chdir(/home/hunandede/projects/linuxcpp/aaa);// aaa 目录是真实存在的 ret 0//int ret chdir(/home/hunandede/projects/linuxcpp/bbb);//bbb目录不存在 ret-1//另一个问题是 chdir虽然成功了但是意义在哪里这个当前文件肯定是指的 可执行文件的路径了改变目录也不会将 执行文件 拷贝到 aaa目录cout ret ret endl;getcwd(nowpath, sizeof(nowpath));cout nowpath nowpath endl;return 0;
} 四。文件目录权限
注意目录文件也是“文件”。其文件内容是该目录下所有子文件的目录项dentry。 可以尝试用vim打开一个目录。 文件 和 目录 的 RWX的权限 对应的操作也不同 r w x 文件 文件的内容可以被查看 内容可以被修改 可以运行产生一个进程 cat、more、less… vi、 … ./文件名 目录 目录可以被浏览 创建、删除、修改文件 可以被打开、进入 ls、tree… mv、touch、mkdir… cd
目录设置黏住位若有w权限创建不变删除、修改只能由root、目录所有者、文件所有者操作。 opendir函数
根据传入的目录名打开一个目录 (库函数) DIR * 类似于 FILE *
DIR *opendir(const char *name); 成功返回指向该目录结构体指针失败返回NULL 参数支持相对路径、绝对路径两种方式例如打开当前目录① getcwd() , opendir() ② opendir(.); closedir函数
关闭打开的目录
int closedir(DIR *dirp); 成功0失败-1设置errno为相应值 readdir函数
读取目录 (库函数)
struct dirent *readdir(DIR *dirp); 成功返回目录项结构体指针失败返回NULL设置errno为相应值
需注意返回值读取数据结束时也返回NULL值所以应借助errno进一步加以区分。
struct 结构体 struct dirent { ino_t d_ino; inode编号 off_t d_off; unsigned short d_reclen; 文件名有效长度 unsigned char d_type; 类型(vim打开看到的类似*/等) char d_name[256];文件名 };
其成员变量重点记忆两个d_ino、d_name。实际应用中只使用到d_name。 练习1实现简单的ls功能。 【imp_ls.c】
练习2实现ls不打印隐藏文件。每5个文件换一个行显示。 【imp_ls2.c】 拓展1实现ls -a -l 功能。
拓展2统计目录及其子目录中的普通文件的个数