목록Linux & Unix (15)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lA1uW/btrwrGQRB8m/KlApa0JUHy56ITyNLKEni0/img.png)
[환경 설정] 실습 환경 구축 adduser 명령어를 이용해서 test 사용자 계정을 추가 test로 loop 코드 실행 프로세스 제어 top loop 프로세스가 실행되는 모습을 top 명령어를 통해 보았다. 여기서 top은 실시간으로 프로세스의 상태를 볼 수 있는 명령어이다. timeout timeout 명령어를 통해 4초동안만 loop를 수행할 수 있게 했다. 프로세스 제한 ulimit ulimit 명령어를 통해 soft설정의 모든 제한 상태를 보았다. 최대 로그인 개수 제한 /etc/security/limits.conf를 통해 test 계정의 최대 로그인 개수 1개로 제한했다. 오른쪽 사진은 test계정에 첫 번째로 로그인한 것이고, 왼쪽 사진은 test계정에 한 번 더 로그인을 시도한 것이다. t..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/HqsxO/btrwp1OIiw0/VEK342lBU09LIp2LKsOXX1/img.jpg)
chown() 파일이나 디렉토리의 소유권자를 변경할 때 사용하는 함수이다. chown [옵션] [소유권자] [파일or디렉토리] 소유권자는 이름 또는 숫자로도 입력이 가능하다. 소유권자 자리에 아래와 같이 입력해서 사용자와 그룹을 변경할 수 있다. '사용자명' 만 적으면 : 사용자를 변경한다는 뜻 '사용자명:그룹명' or '사용자명.그룹명' : 사용자와 그룹을 같이 변경한다는 뜻 ':그룹명' or '.그룹명' : 그룹을 변경한다는 뜻 옵션 자리에 들어가는 대표적인 옵션 -R, --recursive : 상위 디렉토리일 경우 하위 디렉토리나 하단 파일들까지 일괄 변경 실습 코드 #include #include #include #include #include #include extern char* optarg;..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/O7rhf/btrwrGJ2tVs/kdNB282evkWKwBjtEVa7yK/img.png)
lseek 파일 기술자를 이용하여 파일의 접근 위치를 주어진 값으로 이동하는 함수 코드 실행결과 ftell 현재 위치를 반환하는 함수 코드 실행결과 fseek 파일의 접근 위치를 주어진 값으로 이동하는 함수 FILE 구조체를 이용하는 고수준 접근 방식이다. 코드 실행결과 getcwd, getwd, get_current_dir_name 현재 작업중인 경로의 위치를 추출하는 함수들이다. getwd의 경우 내부 정적 공간을 사용한다. get_current_dir_name의 호출은 내부에서 동적 메모리 할당이 이루어진다. 코드 실행결과 chdir 현재 작업중인 경로를 파라미터로 들어온 경로로 이동하는 함수 코드 실행결과 opendir, closedir, readdir opendir(), fopendir() : ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZgWLd/btrwnOvJlg9/g7DbQjP5Llvxu3t1q76IsK/img.png)
chmod() 지정한 파일명에 대하여 접근권한을 변경하는 함수 코드 결과 fchmod() 변경 파일 기술자를 사용해 지정한 파일 접근권한 변경하는 함수 코드 실행결과 코드2 실행결과2 stat(), lstat() 주어진 파일명(문자열)을 통해 상태정보를 추출하는 함수 stat()의 경우 링크 파일일 때 원본에 접근하고, lstat()는 stat()와는 달리 주어진 파일 자체 정보를 추출한다. 코드 실행결과 getopt() 옵션 및 설정 값 추출할 때 사용하는 함수 반복 호출하는 방식으로 이용된다. 코드 실행결과 출처 : 운영체제(21-1학기)김병국교수 강의 내용 변형 및 요약
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zLeGN/btrwnQfW2kt/WVcqW9Plt7EAk71cs7PNV0/img.png)
고수준 파일처리 기법 고수준 파일처리 기법이란, FILE 구조체를 통하여 파일을 접근하는 방식이다. 대표적인 파일 처리 시스템 함수 fopen() 파일 및 장치 접근할 때 사용하는 함수 함수 프로토타입 #include FILE *fopen(const char *pathname, const char *mode); pathname : 접근할 파일 또는 장치명 mode : 접근 모드 결과값 성공 : file 구조체 포인터 실패 : null fclose() 파일 접근 해제할 때 사용하는 함수 함수 프로토타입 #include int fclose(FILE *stream); stream : 접근 해제할 FILE 포인터 결과값 성공 : 0 실패 : -1 fread() 파일 읽기 함수 지정한 파일 포인터에서 데이터 읽음..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZhe6K/btrwnQtymE4/BkfDbKVGNlVovdFHIKGKKk/img.png)
폴링 기법 폴링 기법이란 이벤트 발생과 관계없이 일정 주기로 서버에서 내용을 받아오는 방식이다. CPU가 연결된 모든 주변장치에게 데이터 송수신을 위해 일정한 주기로 계속 상태를 묻는다. 즉, 동일 작업을 주기적으로 수행하기 때문에 잦은 데이터 송수신이 있는 주변장치의 접근에 유리하고, CPU의 부하를 발생시킬 수 있다. 코드 실행결과 인터럽트 기법 인터럽트란 사전적 의미로는 '끼어들다', '중단시키다'의 의미를 가졌다. 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 인터럽트라고 한다. 문제가 발생했을 때 주변 장치에서 CPU한테 여기 문제생겼다고 알리는 것과 같다. 폴링 기법과는 다르게 CPU가 필..
cp -r 원본폴더 목적지폴더 원본 폴더를 목적지 폴더로 복사 ex ) cp -r test /home/my/test2 test 폴더를 /home/my 아래에다 test2라는 이름으로 복사한다. rm -rf 디렉토리명 디렉토리 삭제할건지 묻지 않고 바로 삭제 해당 디렉토리와 디렉토리 안에 있는 모든 내용을 모두 삭제한다. cd .. 부모 디렉토리로 이동 ls -al 현재 경로에 있는 모든 폴더와 파일의 권한 보기 cat 파일 이름 파일 안에 있는 내용 보기 ls 현재 저장되어 있는 파일, 디렉토리 모두보기 ls -l 파일, 디렉토리 권한 확인하기 ll 파일이름 파일의 권한 보기 esc + y : 복사 esc + p : 붙여넣기