japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

※ 게시판 용도에 맞지 않는 글(광고및 홍보 글 등)은 임의삭제될 수 있습니다.

 
작성일 : 06-01-05 14:14
디바이스 드라이버 제어에서 ioctl함수에 대해 잘 모르겟습니다.
 글쓴이 : 정성욱
조회 : 1,909  
#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);

            // 13pin <--> GND Pin
            if(prnstate & LP_PSELECD) printf("ON\n");
            else          printf("OFF\n");
            usleep(5000);
       }

       close(fd);
       return 0;
}

여기서요 ioctl 함수를 사용합니다. 이 함수에 의해서 prnstate 변수에 현재의 프린터 포트 입력 상태를 얻어온다고 책에 나와있네요. 책에 찾아보니  ioctl 함수의 매크로 라고 나와있는데요.
 LPGETSTATUS 변수때문에  prnstate 변수에 현재의 프린터 포트 입력 상태를 얻어오는 것 같은데요.  LPGETSTATUS 무슨 뜻인지 잘 모르겟네요...
ioctl함수에 자체적으로 쓰는게 많다고 나와잇는데요. 그 이상 설명이 없습니다.
좀 알려주세요.ㅠㅠ

이 글을 트위터로 보내기 이 글을 페이스북으로 보내기

홍보성 06-01-06 10:28
 
  디바이스든 소켓이든 특정 사용되는 함수마다 특정 매크로들이 정의 되어있습니다. 해당 매크로들은 include되어있는 header file에 정의 되어있구요. 보통 주소번지들로 이루어져있습니다.
위 LPGETSTATUS는 어휘에서 그대로 보이듯이 LP 장치에서 STATUS 상태정보를 GET 가져와라 라는 뜻이네요. ㅡㅡㅋ
ioctl(장치포인터,매크로,매크로가반환한데이타를 넣을 변수주소) 가 되겠군요.
매크로들은 그냥 필요시 외우면서 쓰는 방법이 개발자 수명을 늘려주는 길입니다. 힘내시길~
 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 질문과 답변
리눅스
서버해킹/보안
네트워크
아파치
메일서버
DNS
PHP
JSP
MySQL
큐브리드
Oracle
MRTG
SMS
Weblog
Domain
S/W
하드웨어
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.