새소식

컴퓨터공학 💻/시스템 프로그래밍

[시스템 프로그래밍] 시스템 호출2 : lseek(), open(), read(), write() 연습문제

  • -
시스템 호출2 : lseek(), open(), read(), write() 연습문제
01-01. 실수 20개를 생성하여 파일에 모두 저장한 후, 이를 읽어서 출력하는 프로그램을 작성하시오. 실수는 (double)rand()/MAX_NUM으로 생성할 수 있다. 이후 이 파일로 인해 생성된 파일을 cat 명령어로 출력해 본 후 설명하라.

 

랜덤 함수를 통해 값을 불러와서 double형으로 변환해주고 num에 저장한다. write함수를 이용하여 double형 크기 만큼 num 주소에 저장되어 있는 실수를 fd파일에 저장한다. lseek함수를 이용하여 파일의 첫 위치로 이동한 후 double형 크기만큼 읽어서 포인터 num에 저장하고 읽은 바이트 수가 double형 크기와 같을 동안 반복하는 반복문에서 num을 출력한다.

실행결과

 

01-02. 텍스트 파일의 줄들을 역순으로 바꾸어 파일로 출력하는 프로그램을 작성하라. 첫 줄이 마지막 줄이 되고 마지막 줄이 첫 줄이 되어야 한다.

ch로 \n이 저장되기 전까지 값을 모두 버퍼에 저장한다. \n이 들어오면 출력 파일에 버퍼에 들어있는 값들을 차례대로 저장한다. loc이 0미만이면 반복문을 나가고 남은 버퍼의 값들을 저장해준다.

[실행결과]

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.