1.在Linux平台下对文件编程可以使用两类函数:(1)Linux操作系统文件API;(2)C语言I/O库函数。 前者依赖于Linux系统调用,后者实际上与操作系统是独立的,因为在任何操作系统下,使用C语言I/O库函数操作文件的方法都是相同的。
2.Linux文件API主要常用的有open,write,read,close,lseek,ioctl这几个函数。
主要包含头文件有:
1
#include
<
unistd.h
>
2 #include < fcntl.h >
2 #include < fcntl.h >
实例:
编写一个程序,在当前目录下创建用户可读写文件“hello.txt”,在其中写入“Hello, software weekly”,关闭该文件。再次打开该文件,读取其中的内容并输出在屏幕上。
1
#include
<
unistd.h
>
2 #include < fcntl.h >
3 #include < stdio.h >
4
5 #define LENGTH 100
6 main()
7 {
8 int fd, len;
9 char str[LENGTH];
10 fd = open( " hello.txt " , O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); /* 创建并打开文件 */
11 if (fd)
12 {
13 write(fd, " Hello, Software Weekly " , sizeof ( " Hello, software weekly " ) - 1 ); /* 写入 Hello, software weekly字符串,这里长度-1是因为sizeof把整个常量的所有大小,包括了\0,可以参考基础理论sizeof与strlen的区别,write与read不将\0代入缓冲区, */
14 close(fd);
15 }
16 fd = open( " hello.txt " , O_RDWR);
17 len = read(fd, str, LENGTH); /* 读取文件内容 */
18 printf( " %s\n " , str);
19 close(fd);
20 }
2 #include < fcntl.h >
3 #include < stdio.h >
4
5 #define LENGTH 100
6 main()
7 {
8 int fd, len;
9 char str[LENGTH];
10 fd = open( " hello.txt " , O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); /* 创建并打开文件 */
11 if (fd)
12 {
13 write(fd, " Hello, Software Weekly " , sizeof ( " Hello, software weekly " ) - 1 ); /* 写入 Hello, software weekly字符串,这里长度-1是因为sizeof把整个常量的所有大小,包括了\0,可以参考基础理论sizeof与strlen的区别,write与read不将\0代入缓冲区, */
14 close(fd);
15 }
16 fd = open( " hello.txt " , O_RDWR);
17 len = read(fd, str, LENGTH); /* 读取文件内容 */
18 printf( " %s\n " , str);
19 close(fd);
20 }