분류 전체보기 썸네일형 리스트형 파일다루기 - 파일 디렉터리 접근 권한 관리 파일 디렉터리 접근 권한 관리 - chmod 시스템 호출 chmod는 파일이나 디렉터리의 접근 권한을 변경하는데 쓰인다. 맨앞에 d는 디렉토리인지 파일인지 알 수 있다. d라고 쓰여 있는 것은 디렉토리, 그 위치에 -로 쓰여있는 것은 파일이다. 두번째부터 rwxr-xr-x 이런 방식으로 써있는 문구들이 있다.이 문구들이 바로 접근 권한을 알려주는 문구들이다. 앞에서 부터 3글자 씩 나누어 user/group/다른user 이렇게 나누어 볼 수 있다. r은 read, w는 write, x는 execute 을 나타낸다. 예를 들어 맨 아래줄인 vmware-install.pl의 접근 권한을 해석해보면-rwxr-xr-x- : 파일rwx : 현재 user에서 읽고, 쓰고, 실행이 가능r-x : 현재 user gro.. 더보기 파일다루기 - 라이브러리 함수들 라이브러리 함수들- 저수준 시스템 호출들로 입, 출력을 수행하는 것은 대단히 비효율적이다. - 리눅스는 사용자 프로그램을 실행하는 모드에서 자신의 커널을 수행하는 모드로 전환해 시스템 호출을 처리한 후 다시 사용자 프로그램으로 돌아와야 하기 때문이다. 따라서 프로그램에서는 시스템 호출을 최소한으로 사용해야 하며, 사용할 때에는 최대한 많은 일을 한꺼번에 수행해야한다. - 하드웨어에는 한계가 있으며, 그런 한계 때문에 저수준 시스템 호출이 한 번에 읽거나 쓸 수 있는 블록의 크기에 제한이 가해진다.- 고수준의 인터페이스를 위해 리눅스 베포판은 여러 표준 라이브러리들을 제공한다. 표준 라이브러리 함수를 이용하면 위에서 언급한 문제점들을 피해 갈 수 있다. 좋은 예가 버퍼링 방식 출력을 지원하는 표준 I/O라.. 더보기 파일 다루기 - 시스템 호출과 장치 드라이버 시스템 호출과 장치 드라이버 - 파일과 장치의 접근 및 제어에 쓰이는 함수들이 몇 가지 있는데 이러한 함수가 시스템 호출(system call)에 속한다. 이 시스템 호출은 unix/linux가 직접 제공하는 것으로, 프로그램과 운영체제 사이의 인터페이스 역할을 한다.- 운영체제의 핵심부인 커널(kernel)에는 여러 개의 장치 드라이버(devece driver)들이 있다. 장치 드라이버는 시스템 하드웨어의 제어를 위한 저수준 인터페이스들의 모음이다. - 하드웨어의 독특한 특성들은 일번적으로 ioctl(I/O control의 약자)이라는 시스템 호출을 통해서 파악하거나 제어할 수 있다.-/dev에 있는 장치들도 디스크 파일을 위한 것들과 동일한 시스템 호출들을 이용해서 이들을 열고, 읽고, 쓰고 닫을 수.. 더보기 파일 다루기 - 리눅스 파일 구조 리눅스 파일 구조- 리눅스에서는 모든것이 파일이다!- 디스크파일, 직렬포트, 프린터, 기타 주변장치 들을 마치 파일을 사용하는 것처럼 사용할 수 있다.- 디렉터리 역시 파일 종류이다. 1. 디렉터리- 시스템은 파일들의 inode번호를 이용하여 접근하는데 이 파일들의 inode 번호들과 이름을 담은 하나의 파일이다. ( 파일의 inode번호는 ls -i 명령어를 이용하여 볼 수 있다.)- 파일들은 항상 특정한 디렉터리에 속하고 그 디렉터리도 다른 디렉터리도 담을 수 있다. 이렇게 트리형태의 파일 시스템 계통구조가 만들어진다. - 일반적으로는 홈 디렉터리에 저장된다. /home/bp 의 경로 여기서 bp는 유져네임 줄여서 ~bp로 나타내기도 한다. 표준라이브러리 함수들은 셸의 틸트 단축 표기를 이해하지 못한.. 더보기 실습 2 : 정적 라이브러리 1. 각 함수마다 소스 파일 만들기 - fred.c#include void fred(int arg){printf("fred: we passed %d\n", arg);}- bill.c#include void bill(char *arg){printf("bill: we passed %s\n", arg);} 2. 함수들을 개별적으로 -c옵션을 주어 컴파일 해서 목적파일을 만듬. (-c옵션을 주지 않으면 컴파일러는 실행파일을 만드려고 하고 main함수가 없기 때문에 컴파일이 실패하게 된다.)gcc -c bill.c fred.c => 목적파일 생성ls *.o => 목적파일 확장자인 .o를 가진 파일을 찾아 목적파일이 제대로 만들어 졌는지확인 billo.o fred.o => .c파일과 같은 이름을 가진 .o파일이 보.. 더보기 개발 시스템의 개요 개발 시스템의 개요 1. 응용프로그램 - 일반적으로 응용프로그램들은 각자 자신만의 개별적인 디렉터리에 저장되나 시스템이 제공하는 기본 응용프로그램들은 /usr/bin에 들어있다. 구체적인 호스트 컴퓨터나 지역네트워크를 위해 시스템관리자가 추가한 응용프로그램들은 /usr/local/bin이나 /opt에 있는 경우가 많다.- 관리자들은 /opt나 /usr/local을 선호한다. 그러면 서드파티 제작사가 제공했거나 나중에 추가한 파일들과 시스템이 제공한 파일들을 구분할 수 있기 때문이다. 이렇게 되면 운영체제 업그레이드 할 때 편하다. /opt와 /usr/local만 보존하면 되기 때문이다. 만약 시스템 전역 응용프로그램을 만든다면 /usr/local 에서 프로그램을 설치하는 것이 바람직하다.- GNU컴파일러.. 더보기 실습 1 : Hello World Hello.c #include #include int main(){printf("Hello World\n);exit(0);} ----------------- gcc -o hello hello.c ==> gcc 컴파일러를 이용하여 hello.c 파일을 hello라는 실행파일로 컴파일 -o는 컴피일러에게 실행파일의 경로와 이름을 알려주는 용도. 이옵션을 생략하면 a.out를 실행한다../hello ==> 실행파일이 PATH 변수에 있어야 실행된다. 그렇기 때문에 ./을 넣어 현재 디렉토리에서 찾으라는 표시를 해둔다.Hello World ==> 출력 확인 실행 결과 실행파일 앞에 ./을 붙이지 않았을때 PATH에 현재 디렉토리인 ~/Documents/LinujxTest/chapter1이 등록되지 않아 hell.. 더보기 리눅스 프로그래밍 리눅스 프로그래밍- 리눅스 프로그램들은 크게 두 가지 특별한 파일 형식으로 나뉜다. 하나는 실행 가능 파일(executable), 다른 하나는 스크립트(script)이다.- 실행파일(executable) : 컴퓨터가 직접 실행 할 수 있는 프로그램. windows 에서 .exe파일- 스크립트(script) : 다른 프로그램(인터피리터)이 실행할 명령들의 집합. windows에서 .bat나 .cmd파일 또는 인터피리터 방식의 BASIC프로그램 등에 해당한다.- 리눅스에서는 실행파일 또는 스크립트의 이름이나 확장자에 특별한 조건이 붙지 않는다. 심지어 확장자가 없어도 된다! 주어진 파일이 실행 가능한 프로그램인지는 파일 시스템 특성으로 구분이 된다. - 리눅스 시스템에 로그인한 사용자는 셀 프로그램(대채로 .. 더보기 이전 1 ··· 32 33 34 35 36 다음