Controle da bandeja do CD no Linux
Dois simples programas em C
Finalidade: abrir e fechar a bandeja do drive de CD do PC
Usando funções de sistema
#include <stdio.h> #include <stdlib.h> int main() { int x=1; int opt; while (x) { system("clear"); printf("\n>>> Digite a opcao desejada: 1 para abrir a bandeja, 2 para fechar.: "); scanf("%i",&opt); if (opt==1) { system("eject"); } else if (opt==2) { system("eject -t"); } else { printf("\nOpção inválida!\n"); printf("\nDigite 1 para continuar ou outro numero para sair: "); scanf("%i",&x); } } return(0); } |
Usando a biblioteca de manipulação de CD do Linux
#include <fcntl.h> #include <stdlib.h> #include <stdio.h> #include <linux/cdrom.h> #include <sys/types.h> #include <sys/ioctl.h> #include <errno.h> #include <unistd.h> #define CDDEVICE "/dev/cdrom" int main(int argc, char *argv[]) { int cdrom, opt,x =1; cdrom = open(CDDEVICE, O_RDONLY | O_NONBLOCK); if(cdrom < 0) { fprintf(stderr, "Error: %s\n", strerror(errno)); exit(-1); } while (x) { printf("\e[H\e[2J\n"); printf("\n>>> Digite a opcao desejada: 1 para abrir a bandeja, 2 para fechar.: "); scanf("%i",&opt); if (opt==1) { ioctl(cdrom, CDROMEJECT, 0); } else if (opt==2) { ioctl(cdrom, CDROMCLOSETRAY, 0); } else { printf("\nOpcao invalida!\n"); printf("\nDigite 1 para continuar ou outro numero para sair: "); scanf("%i",&x); } } return(0); } |
Ambos testados e desenvovidos no Linux, usando GCC 4.2.3.





