pipe는 이름을 없어 parent, child process만 통신이 가능하다. 이를 보안한게 named pipe인데, fifo라고도 한다. 책은 다른 유닉스 버전으로 작성하여, linux에 맞게 수정했다. 결론적으로 pipe와 비슷하고 더 쉽다. #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <sys/wait.h> #include <string.h> #include <sys/stat.h> #include <unistd.h> #define FIFO1 “/tmp/fifo.1” #define FIFO2 “/tmp/fifo.2” #define MAXLINE…… fifo 예제. unix network programming 55p 계속 읽기
[태그:] linux
pipe 예제. unix network programming 47p
pipe를 이해하기 전, 일단 gdb를 사용하는 방법을 알아야 했다. pipe가 서로 다른 프로세스를 연결하는 수단이라, gdb 기본 설정으로는 pipe로 어떤 내용을 확인하기 어려웠다. 아래 코드를 디버그 하기로 했다. #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <string.h> #define MAXLINE 100 void client(int, int), server(int, int); void server(int readfd, int writefd){ char buff[MAXLINE];…… pipe 예제. unix network programming 47p 계속 읽기
c 더블 포인터 이해하기.
c는 포인터가 혼란스러운데 이해했다고 믿고???? 나중에 다시 생각하려고 남긴다. 다음 코드를 만들었고 실패했다. bufToStruct를 실행할 때 포인터로 넘겼어도 buf를 받으면서 임시 공간에 변수를 만든다. 함수 실행을 끝내면서 그 공간도 날아가 도로묵 된다. #include <stdio.h> #include “module1.h” int main() { struct mysqlStruct oneSqlData; char readbuf[MAX_LEN]; int ret; openfile(readbuf); printf(“버퍼는 %s\n”,readbuf); do{ ret=bufToStruct(readbuf, &oneSqlData); printf(“%p\n”, readbuf); sleep(1);…… c 더블 포인터 이해하기. 계속 읽기
Linux System Programming
isbn: 978-1449339531 사 보진 않았지만 참 유용하다. 인터넷을 검색하면 pdf를 쉽게 찾을 수 있다. 400 페이지 책을 자세히 읽고 있으면 지친고 괴롭다. 예제 중심으로 읽고 세세한 나머지 부분을 통과 했다. 나중에 필요할 경우 다시 찾아 보면 된다. 다만 예제는 직접 실행했고 조금씩 수정해 보았다. 전에 도서관에서 비슷한 책을 빌렸는데 그때 왜 이런 책을 읽는지 이해가…… Linux System Programming 계속 읽기
signal, page 342
signal 예제. shell에서 kill -l로 해당 PID에 시그널을 보낼 수 있다. #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <signal.h> /* handler for SIGINT */ static void signal_hanlder (int signo) { /* * Technically, you shouldn’t use printf() in a * signal handler, but it isn’t the end of the * world. I’ll discuss why in…… signal, page 342 계속 읽기