문자열이 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'을 반환합니다. 이것은 성가신 것입니다. 나는이 시스템을 피하려고 노력한다. :-) – torek
@Coren - 헤더에 대해 분명합니다. 코드를 복제 할 필요가 없습니다. – Yakov