UNIX 프로그래밍

    2013.09.10_UNIX_7.7(DLL)~setjmp,longjmp 함수

    공유 라이브러리 ( Dos: DLL ( Dynamic Link Library ) ) ▶ 예를 들어 printf() 라는 함수는 Library 에서 경로를 통해 끌어다가 사용한다.항상 실행될때 쓰이고, 실제로 App에 저장되어있지는 않다. 이렇게 사용되는 것이 "공유 라이브러리" 이다. 리눅스에서는 공유라이브러리, 윈도우에서는 DLL 이라한다. 명령어 예제 ▶ gcc 가 공유 라이브러리를 사용하지 않게 해서 컴파일을 하면 용량이 늘어나는 것을 확인 할 수 있다. ▶ -static 을 파일 앞에 붙여 컴파일 ▶ size 를 알아보면 얼마만큼 붙었는지 알 수 있다. 환경변수 (getenv, setenv, putenv) char * getenv(const char *name) : name 에 해당하는 환경변수 ..

    2013.09.03_정리(수정중)

    보호되어 있는 글입니다.

    2013.09.04_수정중_

    보호되어 있는 글입니다.

    2013.09.02_4장 파일과 디렉터리

    stat, fstat, lstat 함수 #include int stat(const char *restrict pathname, struct stat *restrict buf); int fsat(int filedes, struct stat *buf); int lstat(const char *restrict pathname, struct stat *restrict buf); 반환값 : 성공시 0 , 오류 시 -1 ▶ 파일의 속성을 알려준다. #include "apue.h" int main(int argc, char *argv[]) { int i; struct stat buf; char *ptr; for( i = 1; i

    2013.08.30_UNIX_파일I/O_연산 및 함수

    3.1 원자적 연산들 - 하나의 연산이 여러 단계로 구성되어 있으며 그 단계들 모두가 수행되거나 아니면 하나도 수행되지 않음을 보장될 때, 그러한 연산을 가리켜 '원자적 연산(atomic operation)' 이라고 부른다. 예를 들어서 A와 B 라는 사람이 완전히 똑같은 시간에 비행기표를 같은 번호로 인터넷으로 예약을 하였을 때, 한사람만 예약이 되거나, 중복으로 예약이 되거나 하는 일이 발생하면 안된다. 이때 원자적 연산을 보장받지 못했다. 라고 말할 수 있다. - pread , pwrite 함수 #include ssize_t pread(int filedes, void *buf, size_t nbytes, off_t offset) 반환값 : 읽은 바이트 수, 파일 끝이면 0, 오류 시 -1 ssize..

    2013.08.29_UNIX 프로그래밍_3장_파일 I/O

    3장 파일 I/O - 파일 입/출력에 사용하는 함수 : open, read, write, lseek, close - 비버퍼링(unbuffered I/O)방식 3.1 open 함수 #include int open(const char *pathname, int oflag, ... /* mode_t mode */); 반환값 : 성공 시 파일 서술자, 오류 시 -1- 반드시 지정해야하는 상수 O_RDONLY : 읽기 전용으로 열기 O_WRONLY : 쓰기 전용으로 열기 O_RDWR : 읽기 및 쓰기용으로 열기 - 선택적 상수 O_APPEND : 파일 기록 시 내용을 파일의 끝에 추가한다. O_CREAT : 파일이 존재하지 않으면 새로 생성한다. O_EXCL : O_CREAT 와 같이 지정하고, 파일이 이미 존재..