UNIX环境高级编程阅读笔记(一)

第一章UNIX基础知识

什么是操作系统

  • 操作系统可被定义为一种软件,控制计算机硬件资源,提供程序运行环境(提供服务:执行新程序、打开文件、读文件、分配存储区和获得的当前时间)
  • 软件可被看成是内核 其接口被称为 系统调用
  • 广义上:操作系统包含 内核 和 系统实用程序 、shell、应用程序、公共函数库等

参考 系统实用程序

shell

shell 是命令解释器,相当于翻译,将指令转换为内核能听懂的语言。
查看 shell 版本

文件和目录

1. 文件系统

‘ / ’ 表示根目录
目录是 包含文件属性的信息、文件名文件
文件属性:文件类型(普通文件、目录)、大小、所有者、权限、最后的修改日期等等。

2. 文件名

文件名:不能出现 空格 和 /
新建目录会创建两个文件名: . 和 …
‘ . ’ 当前目录 ‘ . . ’ 上一级目录
#####3. 路径名
绝对路径: 以 / 开头的路径
相对路径:相对于当前目录

样例:列出一个目录中的所有文件的名字 ls命令实现
编者自定义函数

#include<sys/types.h>
#include<dirent.h>
int main(int argc,char* argv[])
{
DIR				*dp;
struct dirent   *dir;

if(argc != 2){
	// err_quit  编者自定义函数
	err_quit("this is directory name"); }
	
	dp = opendir(argv[1]);  // dp 相当于文件
if(dp == NULL){
	err_sys("can't open %s",argv[1]);}
// argv有参数 有文件
dir = readdir(dp);
while(dir != NULL)
	printf("%s\n",dir->d_name);

closedir(dp);
exit(0);
}

Linux下DIR、dirent、stat详解

dirent只是起着一个索引的作用

总结一下,想要获取某目录下(比如a目录下)b文件的详细信息,我们应该怎样做?

首先,我们使用opendir函数打开目录a,返回指向目录a的DIR结构体c。

接着,我们调用readdir( c)函数读取目录a下所有文件(包括目录),返回指向目录a下所有文件的dirent结构体d。

然后,我们遍历d,调用stat(d->name,stat *e)来获取每个文件的详细信息,存储在stat结构体e中。

总体就是这样一种逐步细化的过程,在这一过程中,三种结构体扮演着不同的角色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值