#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ÇÔ¼ö¿¡ ÀÚüÀûÀ¸·Î ¾²´Â°Ô ¸¹´Ù°í ³ª¿ÍÀմµ¥¿ä. ±× ÀÌ»ó ¼³¸íÀÌ ¾ø½À´Ï´Ù.
Á» ¾Ë·ÁÁÖ¼¼¿ä.¤Ð¤Ð