도와주세요!!
글 수 15,339
2012.01.05 14:56:57 (*.148.23.122)
19185
안녕하세요 리눅스 초보 입니다.
제가 gcc로 드라이버를 연습하고 있는데 아래와 같은 코드를 작성했습니다.
그런데 아래의 빨간색으로 칠한 include부분을 보면 실제 이 헤더들이 있는 위치는 어느 위치를 참조하는 것인가요?
예를 들어 lp.h를 제가 찾기를 통해 봤더니 여러군데에서 lp.h가 발견 되었습니다.
즉 제가 사용한 lp.h의 실제 위치는 어떻게 알 수 있는 것인가여?
또한 리눅스는 통합 개발 환경은 없나여? ㅠㅠ; 윈도우에서 VC를 사용해서 작업하다가 gcc에서 하려니..어떻게 소스가 연결 되어있는지도 모르겠더라구여 ㅠㅠ;
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/lp.h>
int main(int argc, char **argv)
{
int fd;
int prnstate;
int lp;
unsigned char buff[128];
fd = open("/dev/lp0", O_RDWR | O_NDELAY);
if(fd < 0)
{
perror("open error");
exit(1);
}
while(1)
{
ioctl(fd, LPGETSTATUS, &prnstate);
if(prnstate & LP_PSELECD)
printf("ON\n");
else
printf("ONFF\n");
usleep(50000);
}
clse(fd);
return 0;
}
저 헤더 파일은 사용하시는 컴파일러 폴더로 가시면 보실수 있습니다.
컴파일러가 설치된 폴더로 가셔서 include 폴더로 가시면 해당 헤더 파일이 있습니다.
대게 네이티브 컴파일러의 경우 /usr/include 로 가시면 보실수 있습니다.
사용하시는 컴파일러가 틀리면 해당 컴파일러 폴더로 가시면 됩니다.
어딘지 모르시면 Makefile 등을 참조 하셔도 되겠습니다.
마지막으로 컴파일러가 여러개 존재 한다면 같은 헤더가 많이 나올수도 있습니다.