Salut à toi journal, je sais bien que tu n'es pas un forum, mais force est de constater que tu es rudement efficace pour aider le geek en détresse.
Connais tu donc un moyen pour savoir si un DVD est présent dans le lecteur ?
Un truc en sh serait l'idéal.
Merci grand journal :)
# Re: Savoir si un CD est présent dans le lecteur
Posté par Toto . Évalué à 2.
Si ca marche, il y a un CD, sinon, il n'y en a pas.
Sur ce je vais prendre l'air -->[]
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par gawal . Évalué à 2.
Si il n'y en a pas : No medium found. Si tu veux le savoir d'un programme, essaie d'acceder à ce fichier /dev/cdrom.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Yaz . Évalué à 2.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Toto . Évalué à 2.
allez hop, on retourne dehors, il faisait si bon... -->[]
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par TazForEver . Évalué à 2.
mount | grep blabla
# Re: Savoir si un CD est présent dans le lecteur
Posté par Mathieu Pillard (site web personnel) . Évalué à 3.
Si tu veux verifier le type de truc dans le lecteur, ca prend juste quelques lignes en plus...
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par L. R. . Évalué à -1.
dev = argv[1];
else
dev = "/dev/cdrom";
C'est moi, ou ça c'est pas du C O_O ?
Enfin le premier dev je dis pas, mais dev = "/dev/cdrom" sachant que dev est un pointeur ?? Je suis pas une bête du C, mais ça me parrait louche :/
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Yusei (Mastodon) . Évalué à 1.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par L. R. . Évalué à 1.
Là on balance un texte comme ça dans un pointeur... Je comprends pas, personne pour m'expliquer plutôt que me moinsser bêtement ?
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Lucas Bonnet . Évalué à 1.
"bidule" est aussi un pointeur vers chaine de caractère.
machin = "bidule"; veut dire que machin prendra l'adresse de la chaine bidule, c'est pas comme a = 8. Mais tu peux faire printf("%s",machin).
Tu suis ? Je pense ne pas avoir dit de grosse connerie.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par L. R. . Évalué à 1.
Me semblait qu'on pouvait pas faire une châine comme ça en C ? J'étais habitué à des str[machin] de tous les côtés pour manipuler des chaînes, c'est pour ça que j'étais étonné.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par benja . Évalué à 1.
L'expression "/dev/cdrom" est du type const char * et contient l'addresse de cette chaine dans le segment data du programme. Tu peux meme écrire dedans si tu veux, du moment que tu ne depasse pas la capacité.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par L. R. . Évalué à 1.
lr@merlin~/tmp$ cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *truc;
truc = "Test";
printf("%s", &truc);
return 0;
}
lr@merlin~/tmp$ gcc -o test test.c
lr@merlin~/tmp$ ./test
È÷¿¿%
lr@merlin~/tmp$
Dans le doute par rapport à printf("%s", &truc); j'ai refais sans :
lr@merlin~/tmp$ cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *truc;
truc = "Test";
printf("%s", truc);
return 0;
}
lr@merlin~/tmp$ gcc -o test test.c
lr@merlin~/tmp$ ./test
lr@merlin~/tmp$
Niet nada pas de "Test" à l'horizon. J'ai omi quelque chose dans ce bout de code à la con ? Je demande qu'à apprendre, car là je vois pas comment on peut mettre une string directement dans un pointeur comme ça.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Yusei (Mastodon) . Évalué à 1.
{
char *test;
test ="toto";
printf("%s\n", test);
}
$ cc test.c
$ ./a.out
toto
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Lucas Bonnet . Évalué à 1.
Ensuite, dans le 2ème, si tu remplaces :
printf("%s", truc);
par
printf("%s\n",truc);
Ca marche. Tout simplement parce qu'il faut vider le tampon de sortie, chose qui se fait avec \n. Si tu vides pas le tampon, rien ne garantit qu'il sera écrit. Et ici tu vois bien qu'il n'est pas écrit.
Voilà :)
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par pasBill pasGates . Évalué à 2.
Bref,
char *toto;
toto="hello";
C'est a peu pres identique a :
char toto[6]="hello";
Mais c'est moche et faut pas le faire.
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par L. R. . Évalué à 1.
# Re: Savoir si un CD est présent dans le lecteur
Posté par foulmetal canette (site web personnel) . Évalué à 3.
- Un truc qui est pas mal aussi c'est d'aller faire un ptit tour dans le répertoire /proc : le fichier info qui donne la capacité du medium /proc/ide/hdX/capacity, faut ensuite diviser le résultat par 2048 et hop ça te donne la capacité en mo, après tu fais des testes sur la taille..
- Un autre truc, si tu as cdrtools d'installer, c'est de récupérer l'info sur la taille en faisant isoinfo -i /dev/hdX -d | grep "Volume size", ensuite il faut multiplier par 2 et diviser par 1024 et là tu retrouves le même résultat en mo :) ...
mes 2 centimes d'.# Re: Savoir si un CD est présent dans le lecteur
Posté par gnujsa . Évalué à 2.
En bash, ça donne:
#!/bin/bash
umount /cdrom 2> /dev/null # On démonte le CD au cas ou y'en aurai un de monté
mount /cdrom 2> /dev/null # On "tente" de monter le CD
if [ "$?" == "0" ]; then
echo "y'a 1 CD dans le lecteur"
else
echo "Lecteur de CDROM vide"
fi
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
- ca t'oblige a mounter/demounter dans tous les sens
- tu n'es pas obligé d'avoir le droit de le faire
- ca ne marchera pas avec un truc audio
- ca ne marchera pas avec un cd-r ou autre truc dans ce genre la vierge
- ca ne marchera pas si le fs dessus est endommagé :) (bon, ok, c'est vicieux :)
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par gnujsa . Évalué à 1.
alors plutot ça:
#!/bin/bash
if [ -z "$(cddb-id 2>/dev/stdout | grep "error")" ]; then
echo "y'a 1 CD dans le lecteur"
else
echo "Lecteur de CDROM vide"
fi
- pas obligé de mounter/demounter dans tous les sens
- pas obliger d'être root (enfin en tous cas chez moi)
- fonctionne aussi bien avec cd de donnée que cd audio
par contre je n'est plus de CD vierge sous la main pour tester :(
et je n'ai pas de CD endommagé :)
[^] # Re: Savoir si un CD est présent dans le lecteur
Posté par Mathieu Pillard (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.