전체 글380 [유닉스 프로그래밍] 시스템정보 다루기 연습문제 #참고. [운영체제 실습] 7.시스템 정보 다루기 - (로그인, 패스워드 정보) [운영체제 실습] 8.시스템 정보 다루기 - (그룹, 시간) 1.uname 함수를 사용해 myname 명령을 만든다. myname 명령은 시스템의 호스트명, 운영체제 릴리즈 및 버전, 하드웨어 아키텍처 정보를 출력한다. myuname의 옵션은 다음과 같다. 2.sysinfo 함수를 사용해 myuname을 구현하라. 3.사용자가 입력한 로그인 id의 길이가 시스템의 최대 로그인명 길이보다 긴지 확인하는 프로그램을 작성하라. 4.파일명을 명령행 인자로 받아 해당 파일의 소유자명과 그룹명을 출력하는 프로그램을 작성하라. 5.사용자명을 입력받아 해당 사용자의 기본 그룹과 2차 그룹을 모두 검색해 출력하는 프로그램을 작성하라. 6.사.. 2020. 7. 15. [유닉스 프로그래밍] 디렉토리 관련 연습문제 *참고 [운영체제 실습] 6.파일과 디렉토리 1.파일의 정보를 추출하는 프로그램을 작성하라. 정보를 알고 싶은 파일의 이름은 명령행 인자로 받는다. 예) 2.입력받은 파일의 접근 권한을 출력하고, 접근 권한을 변경하는 프로그램을 작성하라. 문자모드 기능을 구현한다. 예)./mychmode g+w a.c 3.입력받은 파일의 접근 권한을 출력하고, 접근 권한을 변경하는 프로그램을 작성하라. 숫자모드 기능을 구현한다. 예)./mychmode 0777 a.c 4.디렉토리가 비어 있는지 확인 후 메시지를 출력하고, 비어 있으면, 해당 디렉토리를 삭제하는 프로그램을 작성하라. 5.디렉토리명을 명령행 인자로 입력받아 디렉토리를 생성하고, 작업 디렉토리를 새로 생성한 디렉토리로 이동시키는 프로그램을 작성하라. 6. ’.. 2020. 7. 14. [유닉스 프로그래밍] 파일관련 연습문제 *참고글 1.에러및 low 레벨 파일다루기 2.라이브러리를 이용한 파일다루기 1.저수준 파일 입출력을 이용해 mycat 프로그램을 작성하라. 출력 시 행 번호를 붙여서 출력한다. 파일명은 명령행 인자로 받는다. 예) ./mycat han.c 2.저수준 파일 입출력을 이용해 파일을 복사하는 프로그램을 작성하라. 파일명은 명령행 인자로 받는다. 예) ./mycp han.c bit.c (han.c 를 bit.c로 복사) 3.lseek 함수를 사용해 데이터 파일을 읽고 아래 출력 형태와 같이 출력하는 프로그램을 작성하라. *데이터 파일내용 : abcdefg…..yz *출력내용 : acegik…uwy 4.연습문제 3번을 fread 와 write 함수를 사용해 동일한 결과를 출력하도록 작성하라. 5.고수준 파일 입.. 2020. 7. 14. 15.프로세스와 하드웨어 컴퓨터의 구조 *메모리 : 메모리는 0 또는 1의 열을 저장할 수 있는 장치다. 보통 8비트를 1바이트로 통합하므로 바이트 열을 저장한다고 할 수 있다. 바이트열은 프로그래머가 작성한 코드가 최종적으로 변환된 형태에 해당한다. *cpu : cpu는 내부에 레지스터 라는 작은 장치가 있다. cpu는 메모리부터 레지스터에 데이터를 복사하여 연산을 수행후, 다시 메모리에 되돌려서 메모리의 값을 바꾼다. *hdd : hdd 나 ssd는 메모리처럼 바이트 열을 저장하는 장치지만, 메모리와 비교해서 조금 다르다. 1.일정한 바이트 단위로만 데이터를 주고 받을 수 있다. 2.일반적으로 용량이 메모리 보다 크다. 3.속도가 메모리 보다 느리다. 4.전원이 꺼져도 데이터는 보관 된다. *키보드,마우스 : 키보드나 마우스.. 2020. 7. 12. 14.파일 시스템 관련 api 디렉토리 내용 읽어들이기 #.개요 디렉터리를 읽으면 디렉터리에 담긴 파일들의 정보를 얻을 수 있다. 파일 한개당 하나의 구조체에 대응되어, 디렉터리를 읽으면, 구조체의 배열을 얻을 수 있다. 즉, 디렉터리는 바이트 배열임과 동시에 구조체의 배열인 것이다. 이 구조체를 디렉터리 엔트리라고 한다. #.디렉토리 열기 설명 : name 으로 지정한 디렉터리를 읽기 위해 open 하고 DIR 타입에 대한 포인터를 반환한다. DIR 타입은 디렉터리를 읽어 들이기 위한 스트림을 관리하는 구조체로 파일을 읽을때 사용한 FILE 타입에 대응하는 개념이다. 헤더 : dirent.h 형태 : DIR *opendir(const char *name); 인수 : char *name (열기 대상 디렉토리) 반환 : DIR 열기에 .. 2020. 7. 11. 13.grep 명령어 실습 #.데이터 검색과 가공, 처리 1.regcomp : regcomp을 통하여 정규식(특정한 규칙을 갖는 문자열)을 정의. regcomp() 함수가 성공하면, 0을 리턴합니다. 그렇지 않으면 regerror() 함수에 대한 호출에서 사용할 수 있는 오류 코드를 리턴하며 preg의 컨텐츠가 정의되지 않습니다. 2.regexec : regexec를 통하여 입력된 값이 정규식에 포함되었는지를 확인하고 매칭 정보를 리턴. regexec() 함수는 컴파일된 정규식 preg에 대해 널로 끝나는 string을 비교하여 두 사이의 일치 항목을 찾습니다. 일치 항목을 찾으면 regexec() 함수는 0을 리턴합니다. 일치 항목을 찾지 못하면 regexec() 함수는 REG_NOMATCH를 리턴합니다. 그렇지 않으면 오류를 .. 2020. 7. 4. 12.head 명령어 실습 #.head 명령어 실습 1 *처리 대상은 표준 입력으로만한다. 즉, 실행인자로 파일 이름을 받는 기능은 생략한다. *출력할 줄의 수는 첫 번째 실행 인자로 전달 받는다. 예제 결과 #.head 명령어 실습 2 *파일의 경로를 실행 인자로 받아들이는 기능을 구현 *첫번째 인자는 이전처럼 출력할 라인 수, 두번째 이후 인자를 파일이름으로 간주한다. 예제 결과 #.head 명령어 실습 2 -2 *파일의 경로를 실행 인자로 받아들이는 기능을 구현 *첫번째 인자는 이전처럼 출력할 라인 수, 두번째 이후 인자를 파일이름으로 간주한다. 예제2-2 #.head 명령어 실습 3 *위에서 작성중인 head 명령어 소스에 getopt_long()을 사용해서 *옵션을 처리하는 기능을 추가하는 기능. 예제 결과 #.head .. 2020. 7. 4. [운영체제 실습] 11.시그널 시그널의 개념 : 시그널은 프로세스에게 뭔가 발생했음을 알리는 간단한 메시지를 비동기적으로 보내는 것이다. 1 시그널의 발생 : 시그널은 소프트웨어 인터럽트다. 시그널은 비동기적으로 발생하며, 유닉스 운영체제가 프로세스에 전달한다. 예) *0으로 나누기처럼 프로그램에서 예외 상황이 일어나는 경우 *사용자가 ctrl + c 같은 인터럽트를 입력한 경우 *프로세스가 kill 함수와 같이 시그널을 보낼 수 있는 함수를 사용해 다른 프로세스에 시그널을 보내는 경우 2.시그널 처리방법 *프로세스가 받은 시그널에 따라 기본 동작을 수행한다. 각 시그널에는 기본 동작이 지정되어 있다. 대부분 시그널의 기본 동작은 프로세스를 종료하는 것이다. *프로세스가 받은 시그널을 무시한다. 프로세스가 시그널을 무시하기로 지정하면.. 2020. 7. 3. [운영체제 실습] 10.프로세스 생성과 실행 #.프로세스 생성 - system 함수 사용하기 예제 결과 #.fork 함수 특징 1.fork 함수를 호출하면, 2. 새로운 프로세스를 생성한다. 3. fork 함수로 생성한 자식 프로세스의 메모리 공간은 부모 프로세스의 메모리 공간을 그대로 복사해 만든다. 4.fork 함수는 부모 프로세스에는 자식 프로세스 pid를 리턴하고, 자식 프로세스에는 0을 리턴한다. #.자식프로세스가 상속 받는 대표적인 속성 1.실제 사용자 id 2.유효 사용자 id 3.실제그룹 id 4.유효 그룹 id 5.환경변수 6.열린 파일 기술자 7.시그널 처리 설정 8.현재 작업 디렉토리 #.프로세스 생성 - fork 함수 사용하기 예제 결과 #.프로세스 종료 유닉스는 프로세스가 종료되면 해당 프로세스가 어떻게 종료되었는지를 나타내.. 2020. 6. 28. 이전 1 ··· 37 38 39 40 41 42 43 다음