리눅스 시스템 콜 문제 정리해서 다시 질문올립니다.
희미해
일단 원본 소스를 올립니다. 완성된 소스가 아니지만 구동은 되야 정상이 아닐까 생각되는 소스입니다.
#include stdio.h
#include sys/stat.h
#include fcntl.h
int main(void)
{
int fsrc;
void *ch;
struct stat buf;
fsrc = open(sam.txt,O_RDONLY);
if(fsrc == -1) printf(file open error!\n);j
lseek(fsrc, 0L, SEEK_SET);
for( ; ; )
if(read(fsrc, ch, 1) != 0)
printf(%c,*((char *)ch));
else break;
close(fsrc);
}
///////////////
문제가 되는 부분은 struct stat buf; 이부분입니다.
이 선언을 하는 것 만으로 open시에 제대로 못읽습니다.
아무래도 이 문장에서 초기화하는 작업을 하는것 같은데 관련문서를 찾을 수가 없네요.
답변부탁드리겠습니다.
웃긴건 어떻게 어떻게 하긴 했었는데 실수로 파일을 날려먹어서 (tab키의 오용 ㅠㅠ)
몇시간째 삽질만 하고 있습니다. 명쾌한 답변 부탁드립니다 ㅠㅠ
-
봄해
그런데 참 이상하네요. 원래 선언부에 선언하는것만으로 메모리가 잡히진 않을텐데.. 에러가 안떠야하지 않나요; 우분투에선 또 문제가 없을때가 있던데.. ㅎㅎ 컴파일러가 참 너무너무 다르네요 ^^;
-
은새
아 이런 멍청한 짓을.. ㅠㅠ
void *ch에 메모리 할당을 안해줬었군요. ㅠㅠ
이런 바보같은 ㅠㅠ