Computer Security

#7 저수준 파일 열기/닫기, 스트림 포지션 (실습) 본문

리눅스 시스템 프로그래밍

#7 저수준 파일 열기/닫기, 스트림 포지션 (실습)

쿠리 Kuri 2022. 9. 12. 18:30
반응형

실습1

 

low level API 를 이용해 파일을 열고, 간단한 데이터를 써보자.

 

 

 

 


1. 기본적인 뼈대를 잡아준다.

main

 

 

 


2.파일을 생성하고 그 안에 데이터를 써놓는 코드를 작성하자.

write_file

1. open API를 사용하기 위해선 아래를 추가 해줘야 한다. 추가해주자.

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

 

 

2. open("datafile", O_WRONLY | O_CREAT, 0644);

 

O_WRONLY : 쓰기권한 

O_CREAT : 없으면 만들기

0644 : 권한 설정

파일을 생성하면서, 열고,쓰기권한이 있게끔 만든다.

 

 

 

3. dprintf() 함수를 이용해서 파일에 적어준다.

 

 

 

 

 


3. 전체적으로 완성된 코드이다.

open.c

 

 

 

 


4. gcc 명령어로 컴파일 해준다.

gcc

 

 

 

 

 


5. ./open 을 입력하고, ls -al 명령어로 확인해보자.

ls -al

위에 만들어진 datafile을 살펴보면 권한이 아까 내가 설정 해놓은 644 ( rw, r , r)권한으로 된 것을 알 수 있다!

 

 

 

 

 


6. cat datafile 명령어를 이용해 내용이 잘 입력됐는지 확인 해주자.

cat datafile

 

 

 

 

 


실습2

 

파일이있는경우 파일 사이즈를0으로 만드는 trunc플래그를 테스트해보자.

 

 

 

 


1. 위에 만들었던 소스코드에 아래의 trunc_file 함수를 추가해준다.

trunc

 

 

 

 


2. 완성된 전체 소스코드이다.

open.c

 

 

 

 


3. gcc 명령어를 이용해 컴파일 한후, cat datafile로 읽어보자.

cat datafile

정상적으로 그 전에 썼던 것이 사라지고, byebye file만 출력된 것을 알 수 있다.

 

 

 

 

 

 

 


실습 3  

 

append 를 이용해 내용을 추가해보자.

 

 

 

 

 


1. 위에 만들었던 소스코드에 아래의 append_file 함수를 추가해준다.

append()

기존에 만들었던 파일에 쓸 것이기 때문에, O_CREAT나, 권한설정이 필요가 없다.

 

 

 

 

 


2. 완성된 소스코드이다.

open.c

 

 

 

 

 

 


3. gcc 명령어를 이용해 컴파일 한후, cat datafile로 읽어보자.

cat datafile

정상적으로 byebye file 뒤에 추가 된 것을 알 수 있다.

 

반응형
Comments