01 2014 档案

摘要:在执行这个函数前,先清除errno,函数返回时,检查errno常量。每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量就可以获得失败原因了。例如 1 include 2 #include 3 #include 4 int main(void) 5 { 6 int fd; 7 extern int errno; 8 if((fd = open("/dev/dsp",O_WRONLY)) < 0) 9 { 10 printf("errno=%d\n",errno);11 } 12 exit(0 阅读全文
posted @ 2014-01-18 16:41 soaringEveryday 阅读(542) 评论(0) 推荐(0) 编辑
摘要:对于Unix系列的操作系统,大多都有v节点。但是对于linux来说,只有通用的i节点,却没有v节点。下面来探讨一下,linux下的i节点。linux中,文件查找不是通过文件名称来查找的。实际上是通过i节点来实现文件的查找定位的。我们可以形象的将i节点看做是一个指针fip。当文件存储到磁盘上去的时候,文件肯定会存放到一个磁盘位置上,可以这样想象,既然文件数据是存放在磁盘上的,如果我们知道这个文件数据的地址,当我们想要读写文件的时候,我们是不是直接使用这个地址去找到文件就可以了呢? 是的,linux下,i节点其实就是可以这么认为,把i节点看作是一个指向磁盘上该文件存储区的地址。只不过这个地址我们一 阅读全文
posted @ 2014-01-16 18:40 soaringEveryday 阅读(4871) 评论(0) 推荐(0) 编辑
摘要:打开_GNU_SOURCE这个宏可以打开一些功能,比如为了在Linux系统上编译使用带有检测文件type的宏(S_ISxxxx):S_ISREG() //传入stat结构的st_mode,下同。是否为普通文件S_ISDIR() //是否为目录S_ISLNK() //是否为符号链接S_ISSOCK() //是否为套接字这样子就能包含了上述宏的定义。在编写网络程序时,会涉及到一些关于BSD系统保留下的结构体和宏定义,关于一切配置在linux系统的/usr/include/features.h文件中,开启项如下:#ifdef _GNU_SOURCE# undef _ISOC99_SOURCE# de 阅读全文
posted @ 2014-01-16 16:05 soaringEveryday 阅读(3839) 评论(0) 推荐(0) 编辑
摘要:Unix基本系统数据类型历史上,某些UNIX变量已与某些C数据类型联系在一起,例如,历史上主、次设备号存放在一个1 6位的短整型中, 8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值来表示其设备号,于是,就需要有一种不同的技术。(确实, SVR4用32位表示设备号:14位用于主设备号,18位用于次设备号。) 头文件中定义了某些与实现有关的数据类型,它们被称之为基本系统数据类型(primitive system data type)。有很多这种数据类型定义在其他头文件中。在头文件中这些数据类型都是用C的typedef设施来定义的。它们绝大多数都以_t 结尾。用这种 阅读全文
posted @ 2014-01-15 11:42 soaringEveryday 阅读(1404) 评论(0) 推荐(0) 编辑
摘要:关于关于NTFS符号链接(Windows平台),详见“NTFS符号链接”。符号链接(软链接)是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。[1] 符号链接最早在4.2BSD版本中出现(1983年)。今天POSIX操作系统标准、大多数类Unix系统、Windows Vista、Windows 7都支持符号链接。Windows 2000与Windows XP在某种程度上也支持符号链接。符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。一个符号链接文件 阅读全文
posted @ 2014-01-15 11:25 soaringEveryday 阅读(1782) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示