使用sprintf读写系统调用

时间:2014-01-30 02:55:12

标签: c file-io printf

我只对c程序使用读写系统调用。因此,不能使用printf,getc等任何东西。因为我不能使用printf,所以我需要使用sprintf。但是,我找不到如何将sprintf与文件i / o系统调用一起使用的示例。我需要使用write(....),read(.....)

1 个答案:

答案 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> );