Предположим, у меня есть строка char* str
. распечатать его в буфер следующим образом:Можно ли использовать freopen и после этого fopen?
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
.
Кроме того, в то время как @Yakov вряд ли работать в этом есть (или, по крайней мере, были) системы, где, если у вас есть файл открыт для записи, он автоматически «заблокирован» для чтения. В этом случае вы обычно получите 'NULL' обратно из попытки« fopen'-for-reading. Это ... раздражает. Я стараюсь избегать этих систем. :-) – torek
@Coren - это очевидно о header.There не нужно дублировать мой код – Yakov