Advanced Programming in UNIX Environment Episode 22
二进制I/O #include <stdio.h>
size_t freed(void *restrict ptr,size_t size,size_t nobj,FILE *restrict fp);
size_t fwrite(const void *restrict ptr,FILE *restrict fp);
(1)读或写一个二进制数组。 定位流 (1)ftell和fseek函数。 #include <stdio.h>
long ftell(FILE *fp);
long fseek(FILE *fp,long offset,int whense);
void rewind(FILE *fp);
除了偏移量的类型是off_t而非long以外,ftello函数与ftell相同,fseeko函数与fseek相同。 #include <stdio.h>
off_t ftello(FILE *fp);
int fseeko(FILE *fp,off_t offset,int whense);
fgetpos和fsetpos两个函数是ISO C引入的。 #include <stdio.h>
int fgetpos(FILE *restrict fp,fpos_t *restrict pos);
int fsetpos(FILE *fp,const fpos_t *pos);
格式化I/O #include <stdio.h>
int printf(const char *restrict format,...);
int fprintf(FILE *restrict fp,const char *restrict format,...);
int dprintf(int fd,...);
int sprintf(char *restrict buf,...);
int snprintf(char *restritc buf,size_t n,...);
printf将格式化数据写到标准输出,fprintf写至指定的流,dprintf写至指定的文件描述符,sprintf将格式化的字符送入数组buf中。 sprintf在该数组的尾端自动加一个null字节,但该字符包括在返回值中。 这是printf族的变体类似于上面的5种。 #include <stdio.h>
int vprintf(const char *restrict format,va_list arg);
int vfprintf(FILE *restrict fp,const char *restrict format,va_list arg);
int vdprintf(int fd,va_list arg);
int vsprintf(char *restrict buf,va_list arg);
int vsnprintf(char *restritc buf,va_list arg);
格式化输入 #include <stdio.h>
int scanf(const char *restrict format,...);
int fscanf(FILE *restrict fp,...);
int sscanf(const char *restrict buf,...);
scanf也使用由 #include <stdarg.h>
#include <stdio.h>
int vscanf(const char *restrict format,va_list arg);
int vfscanf(FILE *restrict fp,va_list arg);
int vsscanf(const char *restrict buf,va_list arg);
实现细节
#include <stdio.h>
int fileno(FILE *fp);
如果要调用dup或fcntl等函数,则需要此函数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |