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 더블 포인터 이해하기. 계속 읽기
[태그:] system program
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 계속 읽기
anonymous memory mapping, p308
https://www.miroch.ru/2017/01/17/linux-process-memory-layout/ proc pid maps 여기를 참조 했다. #include <stdio.h> #include <sys/mman.h> int main(int argc, char *argv[]) { char *ptr; int ret; ptr = (char *) mmap((void *) 0x10000, 512 * 1024, PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); printf(“page size is %0x\n”,getpagesize()); printf(“ptr is %p\n”,ptr); sleep(10); /* all done with ‘p’, so give back the 512 KB mapping…… anonymous memory mapping, p308 계속 읽기
inotify 예제
linux system programming, 283p 리눅스에 파일, 디렉토리를 감시하는 watch가 있다. 특정 경로를 설정하여 감시하여 적절한 이벤트를 작성할 수 있다. #include <sys/inotify.h> #include <stdlib.h> #include <errno.h> #include <stdio.h> #include <unistd.h> #define BUF_LEN 128 //int inotify_init1 (int flags); void main(){ int fd; //file descritor int wd; //watch descriptor const char path[50]=”/home/now0930/test/ttt”; fd = inotify_init1 (0); if (fd…… inotify 예제 계속 읽기