본문 바로가기

: ) 파일처리9

[C언어-파일처리] 두 개의 파일 병합하기 (merge) OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 [명세] 이미 존재하는 두 개의 파일, 과 의 데이터를 병합한 새로운 파일 을 생성한다. 병합은 과 의 순서를 따르며, 의 크기는 입력된 두 개의 파일의 크기의 합과 정확히 일치해야 한다. a.out [소스 코드] - merge.c #include #include #include int main(int argc, char *argv[]){ FILE *fp1 = fopen(argv[1],"r"); FILE *fp2 = fopen(argv[2],"r"); FILE *fp3 = fopen(argv[3],"w"); // 파일크기 구하기 int size1,size2,size3; fseek(fp1,0,SEEK_END); size1 = ftell(.. 2022. 4. 4.
[C언어_파일처리] 오프셋, 바이트 수를 기준으로 파일 읽기 (read) OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 [명세] 이미 존재하는 파일에서 을 기준으로 왼쪽편 또는 오른쪽편에 존재하는 의 절대값에 해당하는 크기만큼의 데이터를 읽어서 화면에 출력한다. 만약 가 양수이면 오른쪽편의 데이터를, 음수이면 왼쪽편의 데이터를 읽는다. 가 0이면 데이터를 읽을 필요가 없으며 당연히 화면에 출력되는 데이터도 존재하지 않는다. 의 절대값만큼의 데이터가 왼쪽 또는 오른쪽에 존재하지 않으면 존재하는 데이터만 읽으면 된다. 예를 들면, 이 10이고 가 -5이면 오프셋 5부터 9까지 데이터를 읽어서 출력한다. a.out [소스 코드] - read.c #include #include int main(int argc, char *argv[]){ int offset =.. 2022. 4. 4.
[C언어_파일처리] 파일 복사하기 (copy) OS : Linux 우분투 버전 18.04 컴파일러 : gcc 7.5 [명세] 이미 존재하는 원본파일로부터 10바이트 단위로 데이터를 읽어 새로운 복사본파일에 저장한다. 마지막으로 복사할 데이터가 10바이트가 되지 않는 경우 그 크기의 데이터를 읽어 복사본파일에 저장한다. 명령어를 수행시킬 때 복사본파일은 존재하지 않으며 따라서 새로 생성해야 하며, 명령어를 실행한 후 복사본파일의 내용은 항상 원본파일의 것과 동일해야 한다. a.out [소스 코드] - copy.c #include #include #include int main(int argc, char* argv[]) { FILE *fp = fopen(argv[1], "r"); //원본 파일 읽기 전용으로 열기 if (fp == NULL) { // 파.. 2022. 4. 4.