파이프 질문입니다~
글쓴이: luftpalen / 작성시간: 토, 2006/01/07 - 6:41오후
Wrox 빨간책 Beginning of Linux Programming 에서 파이프 관련 예제를 똑같이 쳤습니다.
#include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #define BUFSIZE 256 int main() { FILE* read_fp; char buffer[BUFSIZE+1]; int chars_read; memset(buffer, 0x00 , sizeof(buffer)); read_fp = popen("ps -ax", "r"); if(read_fp != NULL) { chars_read = fread(buffer, sizeof(char), BUFSIZ , read_fp); while(chars_read >0) { buffer[chars_read -1] = '\0'; printf("Reading : -\n %s \n", buffer); chars_read = fread(buffer, sizeof(char), BUFSIZ, read_fp); } pclose(read_fp); exit(EXIT_SUCCESS); } exit(EXIT_FAILURE); }
디버깅을 해보니
chars_read = fread(buffer, sizeof(char), BUFSIZ, read_fp);
이 줄을 두번째 실행한 부분에서 Segmentation Fault 가 나더군요. 물론 BUFSIZE 를 크게해서 한번에 다 읽어들이면 문제가 없습니다만, 크기가 얼마나 들어올지 모르는 상황에서 이 문제를 어찌해야 할까요?
Forums:
fread에서 BUFSIZ가 BUFSIZE로 바뀌어야 하지않나요?
fread에서 BUFSIZ가 BUFSIZE로 바뀌어야 하지않나요?
======================
BLOG : http://superkkt.com
허걱
이런 제 어처구니 없는 실수였네요 ㅠㅠ 아 쪽팔려 ;;; 이거가지고 왜 몇시간이나 끙끙댔을까 -_-;;
댓글 달기