1. 작업 환경 

    - Oracle VM VirtualBox

    - ubuntu 22.04

    - PuTTY

    - 언어 : C

 

2. 파일 복수 유틸리티 구현 

    - 필요한 함수를 사용하기 위한 헤더함수 include

    - main 함수 정의

    - argc는 명령줄 인자의 개수

    - argv는 명령줄 인자들을 가리키는 문자열 배열

    - n, in, out 변수 정의 

    - in 변수는 첫번째 인자의 open 값을 저장

    - out 변수는 두번째 인자의 open 값을 저장 

    - n 변수는 in 변수에서 읽은 값을 저장 

    - buf 문자형 변수 정의 : 없어도 상관없으나, 성능이 떨어지기 때문에 buf 문자형 변수를 정의해주는 것이 좋음

    - 1번째 if 조건 정의 : 필요한 인자 개수 정의 및 에러 설정  

    - 에러 설정할때는 < 0 을 권장, 에러가 -1 이나 -2 일 수도 있기 때문

    - 출력을 구현할때는 write() 함수를 사용하는 것 보다는 printf() 함수를 사용하는 것이 더 좋음

    - 2번째 if 조건 정의 : 첫번째 파일의 open 정의 및 에러 설정 

    - 3번째 if 조건 정의 : 두번째 파일의 open 정의 및 에러 설정 

    - 첫번째 파일에 데이터가 있다면 데이터를 읽은 후 n 변수에 저장하여 n을 두번째 파일에 씀 

    - 필요한 기능이 모두 작성됐으면 close 로 파일을 닫아 줌 

 

3. 실습하면서 궁금했던 점 

     - 꼭 while 문으로 써야하는 것인가? : 파일이 buf 에서 정의된 데이터 크기 보다 클 경우 파일 전체를 한번에 읽을 수가

       없음. 따라서 while 문이 필요함 

     -  n 변수는 왜 close 하지 않을까? : n 은 파일 디스크립터가 아닌, 바이트 수를 나타내기 때문에 close 할 필요가 없음 

 

4. 느낀점

     - 아래 코드는 반복적으로 연습해서 외운 후 작성할 수 있는 능력을 갖춘다면 다양한 코드를 구조화해서 이해하고 응용

        하는데 도움이 될 것 같다.

     -  if문 조건을 설정할때는 매개변수가 입력되는 부분부터 정의하고, 조건 마다 에러 조건을 설정하고 에러 조건은 "< 0"

        을 사용하는 것이 좋을 것 같다. 

      

'C언어' 카테고리의 다른 글

파일 전송 서버/클라이언트 만들기 실습  (2) 2024.10.11
TCP/IP 소켓 프로그래밍  (0) 2024.10.10
C언어 연산자  (0) 2024.10.08
C언어 문자열 저장 (2)  (1) 2024.10.08
C언어 문자열 저장 (포인터, 배열 포함)  (0) 2024.10.08

+ Recent posts