我只对c程序使用读写系统调用。因此,不能使用printf,getc等任何东西。因为我不能使用printf,所以我需要使用sprintf。但是,我找不到如何将sprintf与文件i / o系统调用一起使用的示例。我需要使用write(....),read(.....)
答案 0 :(得分:1)
通过系统调用的文件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> );