- 소스
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i;
for(i = 1; i<argc; i++){
FILE *f;
int c;
f = fopen(argv[i], "r");
if(!f){
perror(argv[i]);
exit(1);
}
while((c=fgetc(f))!=EOF){
if(putchar(c) < 0) exit(1);
}
fclose(f);
}
exit(0);
}
}
- 실행
dev@dev-desktop:~/codeexample$ ls
cat cat.c cat2 cat2.c
dev@dev-desktop:~/codeexample$ cat cat2.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i;
for(i = 1; i<argc; i++){
FILE *f;
int c;
f = fopen(argv[i], "r");
if(!f){
perror(argv[i]);
exit(1);
}
while((c=fgetc(f)) != EOF){
if(putchar(c) < 0) exit(1);
}
fclose(f);
}
exit(0);
}
dev@dev-desktop:~/codeexample$ ./cat2 cat2.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i;
for(i = 1; i<argc; i++){
FILE *f;
int c;
f = fopen(argv[i], "r");
if(!f){
perror(argv[i]);
exit(1);
}
while((c=fgetc(f)) != EOF){
if(putchar(c) < 0) exit(1);
}
fclose(f);
}
exit(0);
}
while문의 조건식은 C언어에서 자주 사용하는 표현으로, EOF에 도달할 때까지 fgetc()를 반복하라는 뜻이다.
그리고 이번에도 역시 putchar()에 대한 에러 체크 코드가 기술되어있다.
반응형
'OS > 리눅스 기초' 카테고리의 다른 글
12. stdio의 동작 확인 (0) | 2019.10.10 |
---|---|
6. 스트림 관련 라이브러리 함수(stdio)-1 (0) | 2019.10.10 |
1. gcc로 컴파일하기 & 커맨드라인 인자 (0) | 2019.10.02 |
책소개 (0) | 2019.10.02 |