①不带缓存的IO操作(不直接对磁盘文件进行读写操作)就是调用系统中的一个函数。主要是:open read write lseek close。它们是POSIX的组成函数。不带缓存IO操作都是基于文件描述符的(创建文件的时候返回的值)。
②带缓存的IO(标准IO)不依赖系统内核。移植性强,很多时候我们使用标准IO操作是为了减少对read和write系统调用的次数。
③字符串的长度就是字符的个数,字符串的大小就是字符串所占的内存空间的大小。
④strlen 和sizeof 函数的区别:len是长度的缩写,size是大小。sizeof 是运算符,strlen ()是函数。
char *str1="absde";
sizeof(str1)=8/4 // sizeof(str1)不是字符串占的空间也不是字符数组占的空间,而是一个字符型指针占的空间。不同的编译器字符指针所占的内存空间不同。要么是4要么是8。
char str2[]="absde";
sizeof(str2)=6 //对于一个数组,返回这个数组占的总空间,所以sizeof(str2)取得的是字符串"absde"占的总空间。"absde"中,共有a b s d e \0六个字符,所以str2数组的长度是6,所以sizeof(str2)=6*sizeof(char)=6。
strlen不区分是数组还是指针,就读到\0为止返回长度。而且strlen是不把\0计入字符串的长度的。
详细的解释来自:
http://blog.csdn.net/21aspnet/article/details/1539951