setvbuf(stderr,NULL,_IONBF,0); fflush可以把当前缓冲立刻同步到目标上。
原型
int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n)
设置流缓冲选项
_IONBF unbuffered
不缓冲。 流写入立即同步到目标中。 此时 或者__buf=NULL, 或者__buf 至少为 __n 的大小。等同于 void setbuf(FILE *stream, char *buf);==>> setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
_IOLBF line buffered
行部分。 写入到行结束才同步到目标中, 一般用于 __stream = stdin 时。 等同于 void setlinebuf(FILE *stream);
_IOFBF fully buffered
全缓冲。 此时写入一定数据 __n 后才同步到目标中。等同于 void setbuffer(FILE *stream, char *buf, size_t size);
多线程之原子变量
#include
static atomic_int transcode_init_done = ATOMIC_VAR_INIT(0);
读取 atomic_load(&transcode_init_done);
写入 atomic_store(&transcode_init_done, 1);
阅读(2041) | 评论(0) | 转发(0) |