전체 글 57

[C] ctrl + c 로 종료되지 않는 프로그램 구현하기

Hello_Again() set이라는 이름의 시그널 세트를 생성하시오. set을 이용하여 프로그램이 ctrl + c로 종료되지 않도록 만드시오. (힌트: sigprocmask를 사용할 것) #define _GNU_SOURCE #include #include #include #include #include int main(void) { int cnt; sigset_t chkset; sigset_t set; sigemptyset(&set); sigaddset(&set, SIGINT); sigprocmask(SIG_SETMASK, &set, NULL); // do not modify cnt = 0; for (;;) { printf("hello\n"); fflush(stdout); sleep(1); cnt++;..

C/Linux 2023.01.03

[C] execve()를 사용하여 execlp() 구현하기

execlp() 구현하기 execve()를 이용하여 execlp()를 구현하시오. 기존 execlp()와 겹치지 않도록 myexeclp() 함수로 구현할 것 가변인자 함수를 사용할 것 execlp()는 인자의 길이가 가변적임 가변적 인자를 처리해주기 위해서는 stdarg(3)이 필요함 인터넷에서 사용 예제를 검색해볼 것 구현의 편의를 위해 인자의 최대 길이는 MAXARGS를 사용할 것 자체 테스트 방법 환경변수 PATH로부터 경로명을 가져와 테스트해 볼 것 파일이 있는지, 그 파일이 실행 가능한지 테스트해야 함 제일 뒤의 경로명부터 테스트해야 함 처음 실행할 수 있는 경로명에 있는 실행파일을 사용할 것 반환 값 실패 시 -1 반환 #define _XOPEN_SOURCE #include #include #..

C/Linux 2023.01.03

[C] chmod a+rX [path] 구현하기

chmod a+rX [path]의 기능모든 읽기 권한을 활성화 한다.디렉토리에는 모든 실행 권한을 활성화 한다.이미 실행 권한이 있는 파일에 대해 모든 실행 권한을 활성화 한다.요구사항chmod a+rX와 동일하게 동작하는 프로그램을 stat()과 chmod()를 이용하여 구현하라.path에는 여러 파일의 이름이 연속으로 입력될 수 있다.처리할 파일의 이름을 커맨드 라인으로부터 입력받을 수 있어야 한다.입력 파일의 이름이 변경되어도 처리할 수 있어야 한다.실행결과 예시#include #include #include #include #include int main(int argc, char **argv) { int return_stat; char *file_name; struct stat file_info..

C/Linux 2023.01.03

[C] copy_file() 구현하기

copy_file() 함수 구현하기 파일을 복사하여 사본을 생성하는 copy_file()함수를 구현하라. low level function, 즉 open(), read(), write(), close()를 이용하여 구현하라. 단, hole이 있는 경우에도 복사할 수 있어야 한다. Prototype int copy_file(const char *src, const char *dst); src는 원본 파일의 이름이다. dst는 사본 파일의 이름이다. 단계별 동작 첫 번째 파일을 개방한다. 두 번째 파일을 생성한다. 첫 번째 파일을 읽어 두 번째 파일에 쓴다. 첫 번째 파일의 끝에 도달할 때까지 3번 동작을 반복한다. 두 파일을 닫는다. #include #include #include #include #def..

C/Linux 2023.01.03

[Django] 장고 시작하기

해당 글은 위키독스(https://wikidocs.net/91421)와 장고 공식 사이트를 참고하여 작성되었습니다. 1. Django 설치python -m pip install Django해당 명령어로 Django 설치 후 정상 설치 되었는지 확인한다.python -m django --version 2. 프로젝트 생성django-admin startproject mysite해당 명령어를 입력하면 mysite 라는 디렉토리가 생성된다. 생성된 디렉토리에 들어간다.python manage.py migratemigrate 명령어를 통해 sqlite3 파일이 생성되는 것을 볼 수 있다. 장고는 기본 데이터베이스로 sqlite3를 사용한다.python manage.py runserver해당 명령어가 제대로 실행되..

카테고리 없음 2023.01.03

[Ocaml] 기초 연습 1

연구실에서 사용하는 언어가 Ocaml이기 때문에, 공부 기록을 남겨보려고 한다. Ocaml은 함수형 언어이기 때문에 java와 같은 객체지향형 언어와는 차이를 보인다. 구글링을 통해 Ocaml을 실행하는 데에 필요한 melrin 등의 라이브러리 설치를 완료했다. https://www.youtube.com/watch?v=uJ3_bNQPixQ&t=1624s 1. 피보나치 함수 let rec fib x = if x = 0 then 1 else x * fib(x-1) rec 는 재귀 함수 작성 시 사용한다. ─( 21:45:31 )────────────────────────────────────────────────────────{ counter: 0 }─ utop # #use "test..

카테고리 없음 2022.11.15