반응형
프로레스끼리 통신을 하기 위해 파이프라는 함수를 제공해줌.
원형
#include <unistd.h>
int pipe(int fd[2]);
fd[0] : 함수 호출 후 fd[0]에 데이터를 입력 받을 수 있는 파일 디스크립터가 담김 → buffer에서 read
fd[1] : 함수 호출 후 데이터를 출력할 수 있는 파일 디스크립터가 담김 → buffer에 write를 할 수가 있음.
# include <fcntl.h>
# include <unistd.h>
# include <stdio.h>
# include <stdlib.h>
# define BUFSIZE 100
int main()
{
int fd[2];
char buffer[BUFSIZE];
pid_t pid;
int state;
state = pipe(fd);
if (state == -1)
{
puts("error");
exit(1);
}
pid = fork();
if (pid == -1)
{
puts("err");
exit( 1);
}
else if(pid == 0)
{
write(fd[1], "연결성공!!", 25);
sleep(2);
read(fd[0], buffer, BUFSIZE);
printf("Output of child process : %s \\n", buffer);
}
else
{
read(fd[0], buffer, BUFSIZE);
printf("Output of parent process : %s \\n", buffer);
write(fd[1], "정말 좋아!", 25);
sleep(2);
}
}
출력
./a.out
Output of parent process : 연결성공!!
Output of child process : 정말 좋아!
unlink
#include <unistd.h>
int unlink(const char *pathname);
- 파일을 삭제하는 system call 함수.
- 반환: int 0 == 성공, -1 == 실패
반응형