ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>eject



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

  1. eject
  2. ½Ãµð·Ò ²¨³»´Â ÄÚµå
  3. yundream
  4. Version 0.2
  5. 2004/02/26


¼³¸í

ioctl()À» ÀÌ¿ëÇØ¼­ cdromÀ» ²¨³»´Â °£´ÜÇÑ ÇÔ¼ö ÀÔ´Ï´Ù.

»ç¿ë¹æ¹ý

#include <sys/ioctl.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <sys/ustat.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <linux/cdrom.h> 
#include <stdio.h> 
#include <errno.h> 
 
int eject(void); 
 
  1. cdrom ²¨³»±â¸¦ ¼º°øÇÒ°æ¿ì 0, ½ÇÆÐÇßÀ» °æ¿ì 0ÀÌ ¾Æ´Ñ ¼ö¸¦ ¸®ÅÏÇÑ´Ù.

#include "eject.h" 
int main() 
{ 
    if (eject() != 0) 
    { 
        perror("error\n"); 
        return 1; 
    } 
    return 0; 
} 
 

ÄÚµå

#include <sys/ioctl.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <sys/ustat.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <linux/cdrom.h> 
#include <stdio.h> 
#include <errno.h> 
 
char *cd_device = "/dev/cdrom"; 
 
int cdeject(void) 
{ 
    int cd_fd; 
 
    struct stat  lstat; 
    struct ustat lustat; 
 
    // CDROM ÀåÄ¡¸¦ ¿¬´Ù.  
    if ((cd_fd = open(cd_device, O_RDONLY)) < 0) 
    { 
        return 1; 
    } 
 
    // fstat()¸¦ ÀÌ¿ëÇØ¼­ ÆÄÀÏ(ÀåÄ¡)Á¤º¸¸¦ ¾ò¾î¿Â´Ù.  
    if (fstat(cd_fd, &lstat) != 0) 
    { 
        close(cd_fd); 
        return 2; 
    } 
 
    // ustat()¸¦ ÀÌ¿ëÇØ¼­ ÆÄÀϽýºÅÛ Á¤º¸¸¦ ¿äûÇÑ´Ù.  
    // ¸¸¾à CDROMÀÌ mountµÇ¾î ÀÖ´Ù¸é Á¤º¸¸¦ °¡Á®¿À°í  
    // 0À» ¸®ÅÏÇÒ °ÍÀÌ´Ù.  
    // mountµÇ¾î ÀÖ´Â ÀåÄ¡´Â ejectºÒ°¡´É ÇϹǷΠ 
    // errno·Î EBUSY¸¦ ¼³Á¤ÇÏ°í ¸®ÅÏÇÑ´Ù.  
    if (ustat(lstat.st_rdev, &lustat) == 0) 
    { 
        errno = EBUSY; 
        close(cd_fd); 
        return 3; 
    } 
 
    // eject ÇÑ´Ù. 
    if (ioctl(cd_fd, CDROMEJECT) != 0) 
    { 
        close(cd_fd); 
        return 4; 
    } 
    close(cd_fd); 
    return 0; 
} 
 

º¯°æ»çÇ×

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.