이 warning 의 의미는 무엇인가요...

toold의 이미지

경고나는 부분의 소스는 아래와 같구요...

if((fp=fopen(md5_addr, "r")) != NULL){
	bzero(file_buf,BUFFSIZE);

	while((l=read(fp, file_buf, BUFFSIZE))>0){
		write(acceptSD, file_buf, l);
		bzero(file_buf, l);
	}
}

경고 내용은 아래와 같습니다..

test.c:199: warning: passing arg 1 of `read' makes integer from pointer without a cast

어떤 부분이 이상한걸까요...ㅠ.ㅠ...

pynoos의 이미지

read( fileno(fp) ....

라고 하셔야합니다..

read 는 descriptor를 필요로하기 때문이지요..

저것이 warning 정도 밖에 안된다는것은.. C 이기 때문이지요.

Dr_stein의 이미지

저것이 warning 정도 밖에 안된다는것은.. C 이기 때문이지요. 이 말씀이 C컴파일러가 그렇게 만들어져있다는 건지.. C이기때문에 컴파일러를 그렇게 만들수 밖에 없다는건지 궁금합니다. -_ -a

앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;

pynoos의 이미지

Dr_stein wrote:
저것이 warning 정도 밖에 안된다는것은.. C 이기 때문이지요.
이 말씀이 C컴파일러가 그렇게 만들어져있다는 건지.. C이기때문에
컴파일러를 그렇게 만들수 밖에 없다는건지 궁금합니다. -_ -a

그냥.. 가볍게 쓴말입니다.

"타입체크를 강하게 하지 않는다... "

Renn의 이미지

fopen으로 열었으니,
read/write 대신 fread, fwrite 함수를 쓰세요.

fopen에서 쓰는 파일 포인터는
FILE * 타입입니다.
일반적인 open/read/write에서 쓰는
file descriptor의 타입인 int 와는 전혀 틀리죠 -_-;;