C Library User 手册(19)

281 篇文章 16 订阅

10.16.33 _IOFBF

#define _IOFBF
宏将 mode 参数的值传递给 setvbuf 以指示完全缓冲。(仅在流缓冲区填满时才刷新流缓冲区。)

10.16.34 _IOLBF

#define _IOLBF
该宏将 mode 参数的值传递给 setvbuf 以指示行缓冲。(在文本行末尾刷新流缓冲区。)

10.16.35 _IONBF

#define _IONBF
该宏将 mode 参数的值传递给 setvbuf 以指示没有缓冲。(在每次写入操作结束时刷新流缓冲区。)

10.16.36 L_tmpnam

#define L_tmpnam 0>
该宏产生目标环境表示由 tmpnam 创建的临时文件名所需的字符数。

10.16.37 NULL

#define NULL <either 0, 0L, or (void *)0> [0 in C++]
该宏产生一个可用作地址常量表达式的空指针常量。

10.16.38 perror

void perror(const char *s);
该函数将一行文本写入流 stderr。 如果 s 不是空指针,则函数首先写入 C 字符串 s(就像调用 fputs(s, stderr)),后跟冒号 (😃 和空格。 然后它写入由 strerror(errno) 返回的相同消息 C 字符串,转换存储在 errno 中的值,后跟 NL。

10.16.39 printf

int printf(const char *restrict format, …);
该函数在格式格式和任何附加参数的控制下生成格式化文本,并将每个生成的字符写入流标准输出。 它返回生成的字符数,或者如果函数为流设置错误指示符,则返回负值。

10.16.40 putc

int putc(int c, FILE *stream);
该函数与 fputc(c, stream) 具有相同的效果,只是 putc 的宏版本可以多次评估流。

10.16.41 putc_unlocked

int putc_unlocked(int c, FILE *stream); [POSIX]
putc_unlocked 提供与 putc 相同的功能,但不对其操作的流执行隐式锁定。 在多线程程序中,它只能在调用线程成功锁定流的范围内使用。

10.16.42 putchar

int putchar(int c);
该函数与fputc(c,stdout)作用相同,将一个字符写入流stdout。

10.16.43 putchar_unlocked

int putchar_unlocked(int c); [POSIX]
putchar_unlocked 提供与 putchar 相同的功能,但不对其操作的流执行隐式锁定。 在多线程程序中,它只能在调用线程成功锁定流的范围内使用。

10.16.44 puts

int puts(const char *s);
该函数访问 C 字符串 s 中的字符并将它们写入流 stdout。 该函数将 NL 字符写入流中以代替终止的空字符。 如果未设置错误指示符,则返回非负值; 否则,它返回 EOF。

10.16.45 remove

int remove(const char *filename);
该函数删除文件名为 filename 的文件,如果成功则返回零。 如果文件在你删除时打开,则结果是实现定义的。 删除后,你无法将其作为现有文件打开。

10.16.46 rename

int rename(const char *old, const char *new);
该函数将文件名 old 重命名为新文件名,如果成功则返回零。 如果文件名为 new 的文件已存在,则结果由实现定义。 重命名后,无法打开文件名为 old 的文件。

10.16.47 rewind

void rewind(FILE *stream);
该函数调用 fseek(stream, 0L, SEEK_SET) 然后清除流流的错误指示符。

10.16.48 scanf

int scanf(const char *restrict format, …);
该函数在格式格式和任何附加参数的控制下扫描格式化文本。 它从流标准输入中获取每个扫描的字符。 它返回匹配和分配的输入项的数量,或者如果函数在为流设置文件结尾或错误指示符之前未存储值,则返回 EOF。

10.16.49 SEEK_CUR

#define SEEK_CUR
该宏将 mode 参数的值传递给 fseek 以指示相对于当前文件位置指示符的搜索。

10.16.50 SEEK_END

#define SEEK_END
该宏将 mode 参数的值传递给 fseek 以指示相对于文件末尾的搜索。

10.16.51 SEEK_SET

#define SEEK_SET
该宏将 mode 参数的值传递给 fseek 以指示相对于文件开头的搜索。

10.16.52 setbuf

void setbuf(FILE *restrict stream, char *restrict buf);
如果 buf 不是空指针,则函数调用 setvbuf(stream, buf, __IOFBF,BUFSIZ),用 _IOFBF 和 BUFSIZ 字符的缓冲区大小指定完全缓冲。否则,函数调用 setvbuf(stream, 0, _IONBF, BUFSIZ) ,用 _IONBF 指定不缓冲。

10.16.53 setvbuf

int setvbuf(FILE *restrict stream, char *restrict buf, int mode,size_t size);
该函数根据buf、mode和size设置stream流的缓冲模式。 如果成功则返回零。 如果 buf 不是空指针,则 buf 是可用作流缓冲区的大小为大小的 char 数组的第一个元素的地址。 否则,setvbuf 可以分配一个在文件关闭时释放的流缓冲区。 对于模式,你必须提供以下值之一:

  • _IOFBF——表示完全缓冲
  • _IOLBF——表示行缓冲
  • _IONBF——表示没有缓冲

在调用 fopen 以将文件与该流相关联之后以及在调用对流执行任何其他操作的库函数之前,必须调用 setvbuf。

10.16.54 size_t

typedef ui-type size_t;
该类型是你声明用于存储 sizeof 运算符结果的对象的无符号整数类型 ui-type。

10.16.55 sprintf

int sprintf(char *restrict s, const char *restrict format, …);
该函数在格式格式和任何附加参数的控制下生成格式化文本,并将每个生成的字符存储在第一个元素具有地址的数组对象的连续位置中。 该函数通过在数组的下一个位置存储一个空字符来结束。 它返回生成的字符数——不包括空字符。

10.16.56 sscanf

int sscanf(const char *restrict s, const char *restrict format,…);
该函数在格式格式和任何附加参数的控制下扫描格式化文本。 它从第一个元素的地址为 s 的数组对象的连续位置访问每个扫描的字符。 它返回匹配和分配的项目数,或者如果函数在访问数组中的空字符之前没有存储值,则返回 EOF。

10.16.57 stderr

#define stderr
该宏产生一个指向控制标准错误输出流的对象的指针。

10.16.58 stdin

#define stdin
该宏产生一个指向控制标准输入流的对象的指针。

10.16.59 stdout

#define stdout
该宏产生一个指向控制标准输出流的对象的指针。

10.16.60 tmpfile

FILE *tmpfile(void)
该函数使用文件名 temp-name 创建一个临时二进制文件,然后与调用 fopen(temp-name, “wb+”) 具有相同的效果。 当程序关闭它时,文件 temp-name 将被删除,通过显式调用 fclose 或在正常程序终止时。 文件名 temp-name 不会与你创建的任何文件名冲突。 如果打开成功,该函数返回一个指向控制流的对象的指针; 否则,它返回一个空指针。

10.16.61 TMP_MAX

#define TMP_MAX = 25>
该宏产生由函数 tmpnam 创建的不同文件名的最小数量。

10.16.62 tmpnam

char *tmpnam(char *s);
该函数创建一个唯一的文件名 temp-name 并返回一个指向该文件名的指针。 如果 s 不是空指针,则 s 必须是至少大小为 L_tmpnam 的数组的第一个元素的地址。 该函数将 temp-name 存储在数组中并返回 s。 否则,如果 s 是空指针,则函数将 temp-name 存储在静态持续时间数组中并返回其第一个元素的地址。 对 tmpnam 的后续调用可以更改存储在此数组中的值。

该函数在其被调用的前 TMP_MAX 次中的每一次都返回唯一的文件名,之后其行为由实现定义。 文件名 temp-name 不会与你创建的任何文件名冲突。

10.16.63 ungetc

int ungetc(int c, FILE *stream);
如果 c 不等于 EOF,则函数将 (unsigned char)c 存储在地址为流的对象中并清除文件结束指示符。 如果 c 等于 EOF 或存储不能发生,则函数返回 EOF; 否则,它返回 (unsigned char)c。 从流流中读取字符的后续库函数调用获取此存储值,然后将其遗忘。

因此,你可以在读取字符后有效地将字符推回流。 (你不需要回推你阅读的相同字符。)实现可以让你在阅读第一个字符之前回推其他字符。 你以将字符推回流的相反顺序读取字符。 你不能:

  • 推回多个字符
  • 如果文件位置指示符位于文件开头,则推回一个字符
  • 调用 ftell 以获取当前回退字符的文本文件

对流的 fseek、fsetpos 或 rewind 函数的调用会导致流忘记任何被推回的字符。 对于二进制流,文件位置指示符针对每个被推回的字符递减。

10.16.64 vfprintf

int vfprintf(FILE *restrict stream, const char *restrict format,va_list ap);
该函数在格式格式和任何附加参数的控制下生成格式化文本,并将每个生成的字符写入流标准输出。 它返回生成的字符数,如果函数为流设置错误指示符,则返回负值。

该函数通过使用 ap 指定的上下文信息来访问附加参数。 程序必须在调用函数之前执行宏va_start,然后在函数返回后执行宏va_end。

10.16.66 vsprintf

int vsprintf(char *restrict s, const char *restrict format, va_list ap);
该函数在格式格式和任何附加参数的控制下生成格式化文本,并将每个生成的字符存储在第一个元素具有地址的数组对象的连续位置中。 该函数通过在数组的下一个位置存储一个空字符来结束。 它返回生成的字符数——不包括空字符。

该函数通过使用 ap 指定的上下文信息来访问附加参数。 程序必须在调用函数之前执行宏va_start,然后在函数返回后执行宏va_end。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值