shell 编程学习笔记(二)
来源:互联网 发布:python字符串转换列表 编辑:程序博客网 时间:2024/05/26 02:20
shell 编程学习笔记(二)
shell 的结构:
shell由一堆api函数和一些com接口组成, 但它们提供了不一样的功能, 通过api你可以访问shell的基本功能, 而通过com, 给你提供了
shell扩展的功能
shell由folders组成, 所以folder的集合一般被称为shell的namespace, 但folder并不是传统意义上的文件夹, 它可以包含文件也可以包含其他,比如网络节点
folder的实现其实就是一个 com对象, 它提供了标准的接口描述它包含的内容以及它里面的一些属性, 简单的说就是里面有多少文件,多少字文件夹, 它们是什么,
定义一个folder相当于定义一个特殊的文件夹, 这种特定的folder一般被称为shell namespace extension.
folder里面除了sub folder, 最多的就是文件, 这里准确的应该是file object. 就像folder不一定是文件夹, file object也不见得是文件, 它们都是比较抽象的
概念, 但对于文件系统, 它们是一致的.
上面已经一再声明, folder和file已经不是一般意义上的文件夹和文件,那么它们是如何定义它们的路径的, 一般情况下我们用一串用\来连接的字符串来表明路径,
但是它们是抽象的,并不一定是文件系统,用这种简单的字符串来声明它的唯一性往往是不可能的,因而shell 是用pidl来声明它.
就像 c:\windows\system32\ 它可以被看作是 c: , windows , system32 3个部分,用\ 连起来表示一个路径
在shell里面把这三个部分抽象为pidl. 它实际就是一个结构的 list
typedef struct _ITEMIDLIST
{
SHITEMID mkid;
} ITEMIDLIST, *LPITEMIDLIST;
typedef struct _SHITEMID
{
USHORT cb;
BYTE abID[1];
} SHITEMID, *LPSHITEMID;
cb: 表示这个结构占用的内存数
abID: 表示一个数据的一个字节.
注意, cb 绝不是 2+1, 这里的abID不是完整的数据,只是数据的第一个字节
就是想c: 它表示为 {4,"c"}, 而windows 它为 {9, "w"}, 简单的说它是一个扁平的结构,是将这个路径放在一个连续的区域中.用大小来进行定位内存的操作,至于为
什么非要这样, 只能说设计就是如此.
shell 的结构:
shell由一堆api函数和一些com接口组成, 但它们提供了不一样的功能, 通过api你可以访问shell的基本功能, 而通过com, 给你提供了
shell扩展的功能
shell由folders组成, 所以folder的集合一般被称为shell的namespace, 但folder并不是传统意义上的文件夹, 它可以包含文件也可以包含其他,比如网络节点
folder的实现其实就是一个 com对象, 它提供了标准的接口描述它包含的内容以及它里面的一些属性, 简单的说就是里面有多少文件,多少字文件夹, 它们是什么,
定义一个folder相当于定义一个特殊的文件夹, 这种特定的folder一般被称为shell namespace extension.
folder里面除了sub folder, 最多的就是文件, 这里准确的应该是file object. 就像folder不一定是文件夹, file object也不见得是文件, 它们都是比较抽象的
概念, 但对于文件系统, 它们是一致的.
上面已经一再声明, folder和file已经不是一般意义上的文件夹和文件,那么它们是如何定义它们的路径的, 一般情况下我们用一串用\来连接的字符串来表明路径,
但是它们是抽象的,并不一定是文件系统,用这种简单的字符串来声明它的唯一性往往是不可能的,因而shell 是用pidl来声明它.
就像 c:\windows\system32\ 它可以被看作是 c: , windows , system32 3个部分,用\ 连起来表示一个路径
在shell里面把这三个部分抽象为pidl. 它实际就是一个结构的 list
typedef struct _ITEMIDLIST
{
SHITEMID mkid;
} ITEMIDLIST, *LPITEMIDLIST;
typedef struct _SHITEMID
{
USHORT cb;
BYTE abID[1];
} SHITEMID, *LPSHITEMID;
cb: 表示这个结构占用的内存数
abID: 表示一个数据的一个字节.
注意, cb 绝不是 2+1, 这里的abID不是完整的数据,只是数据的第一个字节
就是想c: 它表示为 {4,"c"}, 而windows 它为 {9, "w"}, 简单的说它是一个扁平的结构,是将这个路径放在一个连续的区域中.用大小来进行定位内存的操作,至于为
什么非要这样, 只能说设计就是如此.
- shell编程学习笔记二
- shell 编程学习笔记(二)
- 学习shell编程笔记(二)
- shell学习笔记(二):《Unix Shell编程》学习笔记
- UNIX Shell编程 学习笔记(二)
- shell编程笔记二
- shell学习笔记二
- shell学习笔记二
- shell编程学习笔记
- Shell 编程-学习笔记
- shell编程学习笔记
- shell 编程 学习笔记
- SHELL编程学习笔记
- Shell编程学习笔记
- SHELL编程学习笔记
- Shell编程学习笔记
- Shell编程学习笔记
- scala学习笔记二----交互式shell编程使用
- C语言运算符优先级 详细列表
- <<C++ design patterns and Derivatives Pricing>> 学习系列 CH1-对蒙特卡洛基本理解
- 黑马程序员java学习日记十四 代理类的作用和原理以及APO概念
- 尚学堂马士兵servlet/JSP笔记(三、Cookie、Session、Application和数据库处理)
- b3log的计时器的应用
- shell 编程学习笔记(二)
- 数据库指南-SQL与NoSQL
- Path Sum
- Path Sum II
- oracle 体系结构(七)
- poj1365 Prime Land
- Minimum Depth of Binary Tree
- Android面试题
- Balanced Binary Tree