컴퓨터공학 💻/시스템 프로그래밍
-
pipe(), dup2(), fork() 활용 연습문제 01. pipe() | 자식 프로세스에서 부모 프로세스로 메시지 "I am your child."를 보내는 프로그램을 작성하라. 자식과 부모 프로세스는 각각 주고 받은 메시지를 출력하여야 한다. (조건1) 출력 내용은 다음과 같아야 한다. PID 101 sent -> I am your child. PID 100 received -> I am your child. [실행결과] 02. pipe() | 부모 프로세스에서 자식프로세스로 메시지 "I am your parent."를 보내는 프로그램을 작성하라. 부모와 자식 프로세스는 각각 주고 받은 메시지를 출력하여야 한다. (조건1) 출력 내용은 다음과 같아야 한다. PID 100 sent -> I am y..
[시스템 프로그래밍] 프로세스 사이의 통신 : pipe(), dup2(), fork() 활용 연습문제pipe(), dup2(), fork() 활용 연습문제 01. pipe() | 자식 프로세스에서 부모 프로세스로 메시지 "I am your child."를 보내는 프로그램을 작성하라. 자식과 부모 프로세스는 각각 주고 받은 메시지를 출력하여야 한다. (조건1) 출력 내용은 다음과 같아야 한다. PID 101 sent -> I am your child. PID 100 received -> I am your child. [실행결과] 02. pipe() | 부모 프로세스에서 자식프로세스로 메시지 "I am your parent."를 보내는 프로그램을 작성하라. 부모와 자식 프로세스는 각각 주고 받은 메시지를 출력하여야 한다. (조건1) 출력 내용은 다음과 같아야 한다. PID 100 sent -> I am y..
2021.06.23 -
signal() 함수 활용 연습문제 01. signal(), pause(), alarm() | sleep() 함수를 쓰지 않고 유사한 기능을 하는 프로그램을 구현하라. 이 프로그램은 현재 프로세스를 특정 초 동안 중지시킨다. alarm()과 pause() 시스템 호출을 이용한다. 메인 함수에서는 다음과 같이 테스트 한다. system(“date”); 작성된함수(3); system(“date”); [실행결과] 02. signal(), kill() | 시그널 SIGUSR1(10)과 SIGUSR2(12)을 받아 처리하는 프로그램을 작성하라. 이 프로그램은 기본적으로 무한 루프를 수행하면서, 시그널을 기다린다. (조건1) SIGUSR1을 받으면, “Oops! SIGUSR1!”를 출력하되 종료되지 않는다. (조건..
[시스템 프로그래밍] 프로세스 사이의 통신 : signal() 함수 활용 연습문제signal() 함수 활용 연습문제 01. signal(), pause(), alarm() | sleep() 함수를 쓰지 않고 유사한 기능을 하는 프로그램을 구현하라. 이 프로그램은 현재 프로세스를 특정 초 동안 중지시킨다. alarm()과 pause() 시스템 호출을 이용한다. 메인 함수에서는 다음과 같이 테스트 한다. system(“date”); 작성된함수(3); system(“date”); [실행결과] 02. signal(), kill() | 시그널 SIGUSR1(10)과 SIGUSR2(12)을 받아 처리하는 프로그램을 작성하라. 이 프로그램은 기본적으로 무한 루프를 수행하면서, 시그널을 기다린다. (조건1) SIGUSR1을 받으면, “Oops! SIGUSR1!”를 출력하되 종료되지 않는다. (조건..
2021.06.23 -
fork(), exec() 함수 활용 연습문제 01-01. fork() | 부모 프로세스가 자식 프로세스 2개를 생성하고 각 자식 프로세스는 다시 자손 프로세스 2개를 생성하는 프로그램을 작성하라. [실행결과] 01-02. fork(), execl() | 프로그램 myprog1과 myprog2를 작성한 후, 조건에 따라 프로그램을 작성하라. 작성하는 프로그램명은 myexec이다. myexec의 사용법은 “$ myexec [a|b]”이다. 즉, 입력으로 ‘a’ 혹은 ‘b’를 받는다. (조건1) 파라미터로 ‘a’를 입력하면, “myprog1 14”를 수행하되, exec() 함수로는 execl()을 사용한다. (조건2) 파라메터로 ‘b’를 입력하면, “myprog2 12”를 수행하되, exec() 함수로는 e..
[시스템 프로그래밍] 프로세스 원리 : fork(), wait(), execl(), execlp() 함수 활용 연습문제fork(), exec() 함수 활용 연습문제 01-01. fork() | 부모 프로세스가 자식 프로세스 2개를 생성하고 각 자식 프로세스는 다시 자손 프로세스 2개를 생성하는 프로그램을 작성하라. [실행결과] 01-02. fork(), execl() | 프로그램 myprog1과 myprog2를 작성한 후, 조건에 따라 프로그램을 작성하라. 작성하는 프로그램명은 myexec이다. myexec의 사용법은 “$ myexec [a|b]”이다. 즉, 입력으로 ‘a’ 혹은 ‘b’를 받는다. (조건1) 파라미터로 ‘a’를 입력하면, “myprog1 14”를 수행하되, exec() 함수로는 execl()을 사용한다. (조건2) 파라메터로 ‘b’를 입력하면, “myprog2 12”를 수행하되, exec() 함수로는 e..
2021.06.05 -
시스템 호출4 : stat(), chmod() 연습문제 01-01. 명령줄 인수로 파일 이름을 입력받아 사용자에 실행권한 'x'를 추가하는 프로그램을 작성하시오. [실행결과] 01-02. 명령줄 인수로 파일 이름을 입력받아, 그룹에 읽기권한 'r'과 쓰기권한 'w'를 추가하는 프로그램을 작성하시오. [실행결과] 01-03. 명령줄 인수로 권한과 파일 이름을 입력 받아, 그 파일의 권한을 변경하는 프로그램을 작성하시오. [실행결과]
[시스템 프로그래밍] 시스템 호출4 : stat(), chmod() 연습문제시스템 호출4 : stat(), chmod() 연습문제 01-01. 명령줄 인수로 파일 이름을 입력받아 사용자에 실행권한 'x'를 추가하는 프로그램을 작성하시오. [실행결과] 01-02. 명령줄 인수로 파일 이름을 입력받아, 그룹에 읽기권한 'r'과 쓰기권한 'w'를 추가하는 프로그램을 작성하시오. [실행결과] 01-03. 명령줄 인수로 권한과 파일 이름을 입력 받아, 그 파일의 권한을 변경하는 프로그램을 작성하시오. [실행결과]
2021.05.23 -
시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제 01-01. 명령줄 인수로 받은 파일의 소유자와 그룹의 이름을 프린트하는 프로그램을 작성하라. 명령줄 인수로 한 개 이상의 파일을 받을 수 있어야 한다. getpwuid()와 getgrgid()를 사용하라. [실행결과] 01-02. 파일의 이름들만 출력하는 프로그램을 작성하라. 디렉토리, 문자/블록장치, FIFO, 소켓, 심볼릭링크 등은 출력되지 않고 일반파일만 출력되어야 한다. [실행결과] 01-03. 사용자 옵션에 따라 필요한 정보만을 출력하는 프로그램을 작성하라. 적어도 -s, -F, -n 옵션은 처리되도록 한다. 쉘 명령 ls -s, ls -F, ls -n과 같은 출력을 내도록 한다. 출력되는 파..
[시스템 프로그래밍] 시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제 01-01. 명령줄 인수로 받은 파일의 소유자와 그룹의 이름을 프린트하는 프로그램을 작성하라. 명령줄 인수로 한 개 이상의 파일을 받을 수 있어야 한다. getpwuid()와 getgrgid()를 사용하라. [실행결과] 01-02. 파일의 이름들만 출력하는 프로그램을 작성하라. 디렉토리, 문자/블록장치, FIFO, 소켓, 심볼릭링크 등은 출력되지 않고 일반파일만 출력되어야 한다. [실행결과] 01-03. 사용자 옵션에 따라 필요한 정보만을 출력하는 프로그램을 작성하라. 적어도 -s, -F, -n 옵션은 처리되도록 한다. 쉘 명령 ls -s, ls -F, ls -n과 같은 출력을 내도록 한다. 출력되는 파..
2021.05.23 -
시스템 호출2 : lseek(), open(), read(), write() 연습문제 01-01. 실수 20개를 생성하여 파일에 모두 저장한 후, 이를 읽어서 출력하는 프로그램을 작성하시오. 실수는 (double)rand()/MAX_NUM으로 생성할 수 있다. 이후 이 파일로 인해 생성된 파일을 cat 명령어로 출력해 본 후 설명하라. 실행결과 01-02. 텍스트 파일의 줄들을 역순으로 바꾸어 파일로 출력하는 프로그램을 작성하라. 첫 줄이 마지막 줄이 되고 마지막 줄이 첫 줄이 되어야 한다. [실행결과]
[시스템 프로그래밍] 시스템 호출2 : lseek(), open(), read(), write() 연습문제시스템 호출2 : lseek(), open(), read(), write() 연습문제 01-01. 실수 20개를 생성하여 파일에 모두 저장한 후, 이를 읽어서 출력하는 프로그램을 작성하시오. 실수는 (double)rand()/MAX_NUM으로 생성할 수 있다. 이후 이 파일로 인해 생성된 파일을 cat 명령어로 출력해 본 후 설명하라. 실행결과 01-02. 텍스트 파일의 줄들을 역순으로 바꾸어 파일로 출력하는 프로그램을 작성하라. 첫 줄이 마지막 줄이 되고 마지막 줄이 첫 줄이 되어야 한다. [실행결과]
2021.05.23