見出し画像

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;
}

この記事が気に入ったらサポートをしてみませんか?