티스토리 뷰
728x90
지난 포스팅에 이어서 빠르게 시스템 콜 예제 두 개를 더 보겠습니다!!
3. mycp 프로그램 작성
mycp 프로그램은 첫번째 인자로 지정된 파일을 두번째 인자로 지정한 파일로 복사하는 프로그램입니다. mycp source-file dest-file 명령어를 입력했을때 실행되도록 만들어봅시다. 이때, dest-file의 모드는 rw-rw-rw-로 세팅해야합니다. 사용자,그룹,외부인 모두 읽고 쓰는 것만 할 수 있는 모드입니다.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
int main(int argc,char *argv[]){
int fd_read,fd_write;
char buffer[BUF_SZ];
if(argc != 3){
printf("usage: mycp source-file dest-file\n");
exit(0);
}
printf("first parameter: %s",argv[0]);
printf("second parameter: %s",argv[1]);
fd_read=open(argv[1],O_RDONLY);
fd_write=open(argv[2],O_WRONLY|O_CREATE|O_TRUNC,0644);
if(fd_read==-1||fd_write==-1){ //open error
perror("first open: ");
exit(0);
}
for(;;){
int nb=read(fd_read,buffer,BUF_SZ);
if(nb==0){
break;
}
write(fd_write,buffer,BUF_SZ);
}
close(fd_read);
close(fd_write);
return 0;
}
4. mytee 프로그램 작성
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc,char *argv[]){
char buf[1000];
int fd_read,fd_write;
fd_write=open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0666);
while (fd_read=read(0,buf,1000))
{
write(1,buf,fd_read);
write(fd_write,buf,fd_read);
}
return 0;
}
이상 시스템 콜에 대해서 알아봤습니다! 감사합니다~
728x90
'👩🏻💻개발공부 > 리눅스' 카테고리의 다른 글
9. 리눅스 프로세스(Process) 예제로 알아보기 🔍(1/2) (0) | 2022.12.11 |
---|---|
9. 리눅스 프로세스(Process) 개념 알아보기🔎 (0) | 2022.12.11 |
8. 리눅스 시스템 콜 예제로 알아보기(1/2)🔍 (0) | 2022.12.01 |
7. 리눅스 깃 Git 초보를 위한 정리와 실습 (2/2) (0) | 2022.11.30 |
M1 맥북에 리눅스 가상환경 설치하기 ( UTM ) + 데스크탑 (2) | 2022.11.29 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 개발
- 교환학생
- 자바스크립트
- 스페인 교환학생
- 해커톤
- C++
- 혼공
- 운영체제
- 프로그래머스
- 혼공학습단
- 개발일지
- googleapis
- Signal
- 백준
- 리눅스
- MySQL
- 혼공단 SQL
- JavaScript
- 공룡책
- JS
- Process
- AWS
- Linux
- 프로젝트
- nodejs
- SQL
- 혼공단 9기
- 혼공단
- 깃 예제
- 스페인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함