본문 바로가기
코스웨어/14년 스마트컨트롤러

21040624서상우수업보고서

by 알 수 없는 사용자 2014. 6. 24.
728x90
반응형


레코드 잠금

fcntl() 함수

기능: 파일제어

기본형: int fcnt( int fd, int cmd, struct flock * lock);

fd : 제어할 파일의 파일 식별자

cmd : 동작 지정

lock : 레코드 잠금에서 사용되는 인수

반환값: 실패 -1

(25_1)

(25_2)


(결과)


F_SETLKW로 레코드 잠금설정하기

F_SETLK 는레코드가 다른 프로세스에 의해 이미 잠겨 실패 했을때 실패를 반환하는 반면

F_SETLKW 는 성공할떄 까지 기다린다.


파일을 이용해 프로세스간 통신하기




레코드 잠금 정보 얻어오기





파이프를 이용한 통신

popen()함수

기능 : 파이프를 이용해 명령어를 실행한다.

기본형 : FILE * popen(const char * command , const char * type);

command : 실행할 명령어

type  : 통신형태 

반환값 : 성공:파일포인터

실패:NULL

헤더 파일 : <stdio.h>


pclose()함수

기능 : 파이프를 닫는다.

기본형 :int pclose(FILE * stream);

     stream : 닫을 파이프의 파일 포인터

반환값 : 성공 : 종료상태

실패 : -1

헤더 파일 : <stdio.h>


(25_7)


(25_8)


pipe 함수를 이용한 통신

pipe() 함수

기능 : 파이프를 생성한다.

기본형 : int pipe(int filedes[2]);

filedes[0] : 파이프로부터 데이터를 읽어들일 때 사용하는 파일 식별자

filedes[1] : 파이프에 데이터를 쓸 때 사용하는 파일 식별자 

변환값 : 성공: 0

 실패:-1

헤더 파일 : <unistd.h>

(25_9)


(25_12)


FIFO를 이용한 통신

mkfifo()함수

기능 : FIFO를 생성한다.

기본형 :int mkfifo (const char * pathname, mode_t mode);

반환값 : 성공 : 0

실패 : -1

헤더파일 : <sys/types.h>

    <sys/stat.h>

(25_13)


(25_14)



메시지 큐를 이용한 통신

msgget() 함수 : 메시지 큐를 생성한다

msgsnd()함수 : 메시지 큐를 전송한다

msgrcv()함수 : 메시지 큐에 있는 메시지를 수신한다

msgctl()함수 : 메시지 큐를 제어한다


(26_1)


(26_2)


728x90