파일 대신 터미널 화면으로 인쇄하도록 변경하려고합니다. 그래서 표준 출력으로 인쇄하려고합니다.이 코드를 변경하여 stdout에 대신 쓰는 방법은 무엇입니까?
char buf;
int s, n;
char filename[LINELEN];
char *recfile = "recfile.txt";
FILE *finp;
fflush(NULL);
while(buf != EOF)
{
fflush(finp);
if (read(s, &buf, 1) < 0) {
printf("\terror in recieving file\n");
}
if(buf != EOF)
(void) fputc(buf, finp);
}
fclose(finp);
close(s);
나는이 변경을 시도했다.
finp = freopen("/dev/null","w+", stdout);
Linux의 모든 항목이 파일입니까? 왜 그렇게 일하지 않았습니까?
나는 모든 코드를 보여주고 있다고 생각하지 않습니다. 그러나'fputc()'대신에'putc()'를 호출하지 않는 것이 좋을까요? 출력을'stout'으로하고 싶다면,'/ dev/null'으로 리다이렉트하는 것처럼 보입니다. 아주 좋은 생각은 아닙니다 ... –
* 터미널 스크린에 프린트하려고합니다. * 왜 'freopen ("/ dev/null", "w +", stdout)'이 터미널에'stdout'을 재 연관시킬 것이라고 생각합니까? –
이 프로그램 조각은 여러 가지 이유로 거의 확실하게 작동하지 않습니다. 우리는 _all_ 소스 코드를보아야하며, 읽으려는 입력 파일의 예가 바람직합니다. – gbulmer