假设我有一个字符串char* str
。我通过以下方式将其打印到缓冲区:
char buf[MAX_LEN];
freopen("tmp","w",stdout);
printf("%s\n",str);
fflush(stdout);
fp = fopen(tmp,"r");
if (fp == NULL) return;
fgets(buf,MAX_LEN,fp);
fclose(fp);
fclose(stdout);
此代码可能会导致无效的流缓冲区句柄吗?freopen
使用和使用它是否合法fopen
?基于我的系统的限制,我不能使用fprintf
和sprintf
.