![見出し画像](https://assets.st-note.com/production/uploads/images/155158772/rectangle_large_type_2_69a77f4f233465a762927cc0c549a7bb.png?width=1200)
LinuxでCDをイジェクトするC言語のコード
LinuxでCD-ROMのディスクをイジェクトさせるサンプルプログラムです。
ioctrlでCDROMEJECTを呼ぶ前に、CDROM_LOCKDOORを0(unlock)を実行しておかないと、ディスクが出てきてくれないようです(無くてもイジェクトされる場合もあるかもしれませんが)。
#include <stdio.h>
#include <fcntl.h>
#include <linux/cdrom.h>
#include <sys/ioctl.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
const char *dev = "/dev/cdrom";
int fd = open(dev, O_RDONLY);
if(fd < 0){
printf("Failed to open '%s' \n", dev);
return -1;
}
ioctl(fd, CDROM_LOCKDOOR, 0);
ioctl(fd, CDROMEJECT);
close(fd);
return 0;
}