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.

  1. Busca

  2. Arquivo

  3. Amiguinhos

  4. Posts recentes

  5. Nuvem de tags

  6. Comentários Recentes

  7. Licença

    Creative Commons License
    Esta obra está licenciada sob uma Licença Creative Commons. Overflow by Weslly Honorato is licensed under a Creative Commons Attribution-ShareAlike 2.5 Brazil License.
  8. Estatísticas

    eXTReMe Tracker
  9. /etc

    Firefox Powered by Wordpress tracker RSS Add to Technorati Favorites
  10. Meta

  11. Capitalismo

    Saiba onde tem o melhor preço antes de comprar