通过系统调用的文件 I/O 比调用 C 文件 I/O 库更简单,并且在较低级别上运行。
使用这些系统调用需要一个名为“fcntl.h”的头文件:
#include <fcntl.h>
"creat()" 系统调用当然会创建一个文件。它的语法如下:
<file descriptor variable> = creat( <filename>, <protection bits> );
ex:
#define RD_WR 0666
int fd; /Define file descriptor. */
fd = creat( "data", RD_WR );
"open()" 系统调用打开一个现有文件进行读取或写入。它有语法
<file descriptor variable> = open( <filename>, <access mode> );
O_RDONLY Open for reading only.
O_WRONLY Open for writing only.
O_RDWR Open for reading and writing.
ex:
int fd;
fd = open( "data", O_WRONLY );
"close()" 系统调用非常简单。它所做的只是"close()" 一个打开的文件,而无需进一步访问它。 "close()" 系统调用的语法如下:
close( <file descriptor> );
"write()" 系统调用将数据写入打开的文件。它的语法是:
write( <file descriptor>, <buffer>, <buffer length> );
ex:
float array[10];
...
write( fd, array, sizeof( array ) );
"read()" 系统调用从打开的文件中读取数据。其语法与"write()"调用完全相同:
read( <file descriptor>, <buffer>, <buffer length> );