파이프 질문입니다~
글쓴이: 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
허걱
이런 제 어처구니 없는 실수였네요 ㅠㅠ 아 쪽팔려 ;;; 이거가지고 왜 몇시간이나 끙끙댔을까 -_-;;
댓글 달기