Linux C 第十一章文件操作十个问题及解答
1. 为什么要使用文件系统?
在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出把这些数据以文件的形式放在外存中,需要的时候再将他们调入内存,从此就有了文件系统,它负责管理在外存的文件,并把存取,共享,保护等手段提供给用户,这样就方便了用户,保存了文件的安全性,还提高了系统资源的利用率。
2. 文件系统的作用?
从系统的角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统;从用户的角度来看,文件系统的主要目的是实现了对文件的按名存取。
3. Linux C文件分类有哪些?
分为 普通文件;目录文件;设备文件;管道文件;链接文件。
4. 系统调用需要注意些什么?
系统调用函数通常在成功时返回0值,不成功时返回非零值。如果要检查失败原因,则要判断全局变量errno的值,errno中包含错误代码。
许多系统调用的返回数据通常通过引用参数传递,这时,需要在函数参数中传递缓冲区地址,而返回的数据就保存在该缓冲区中。
不能认为系统调用函数比其他函数的执行效率高。
5. 不带缓存的I/O操作主要用到什么函数?
Creat 函数 : 建立文件;
Open函数 :打开文件;
Read 函数 :从已打开的文件读取数据;
Write函数 :将数据写入已打开的文件内;
Lseek函数 :用于移动文件的读写位置;
Close函数 :关闭文件。
6. 带缓存的I/O操作主要用到什么函数?
fopen函数 :打开文件;
fread 函数 :从文件流读取数据;
Fdopen函数:将文件描述词转为文件指针;
fwrite函数 :将数据写至文件流;
Lseek函数 :用于移动文件流的读写位置;
fclose函数 :关闭文件。
7. fgetc 函数 getc 函数和getchar 函数有什么不同?
fgetc函数用于从文件流中读取一个字符;
getc函数用于从文件中读取一个字符,但getc为宏定义,非真正的函数调用;
Getchar函数用于从标准输入设备内读取一个字符。
8. fputc 函数putc 函数 putchar函数有什么不同?
fputc函数 :用于将一指定字符写入文件流中;
putc函数 :用于将一指定字符写入文件中,但putc为宏定义,非真正的函数调用;
putchar函数 : 用于将指定的字符写到标准输入设备。
9. fgets 函数 与 gets函数有什么不同?
fgets 函数用于从文件中读取一字符串;
gets 函数用于从标准输入设备内读取一字符串;
尽量不使用gets函数,内存越界是有警告隐患。
10. printf函数、fprintf函数和sprintf函数的区别?
printf函数用于格式化输出数据;
fprintf函数用于格式化输出数据至文件;
printf函数用于格式化字符串复制。