HOME > °Ô½ÃÆÇ > ÀÚÀ¯°Ô½ÃÆÇ
°Ô½ÃÆÇ| ÀÚÀ¯°Ô½ÃÆÇ
¡Ø °Ô½ÃÆÇ ¿ëµµ¿¡ ¸ÂÁö ¾Ê´Â ±Û(±¤°í¹× È«º¸ ±Û µî)Àº ÀÓÀÇ»èÁ¦µÉ ¼ö ÀÖ½À´Ï´Ù.

 
ÀÛ¼ºÀÏ : 06-01-05 14:14
µð¹ÙÀ̽º µå¶óÀ̹ö Á¦¾î¿¡¼­ ioctlÇÔ¼ö¿¡ ´ëÇØ Àß ¸ð¸£°Ù½À´Ï´Ù.
 ±Û¾´ÀÌ : Á¤¼º¿í
Á¶È¸ : 1,912  
#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(ÀåÄ¡Æ÷ÀÎÅÍ,¸ÅÅ©·Î,¸ÅÅ©·Î°¡¹ÝȯÇѵ¥ÀÌŸ¸¦ ³ÖÀ» º¯¼öÁÖ¼Ò) °¡ µÇ°Ú±º¿ä.
¸ÅÅ©·ÎµéÀº ±×³É ÇÊ¿ä½Ã ¿Ü¿ì¸é¼­ ¾²´Â ¹æ¹ýÀÌ °³¹ßÀÚ ¼ö¸íÀ» ´Ã·ÁÁÖ´Â ±æÀÔ´Ï´Ù. Èû³»½Ã±æ~