Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Linux/Unix ::  File descriptoren in c++  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Cho++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
Beitrag Cho++ Mitglied 22:52:25 20.01.2012   Titel:              Zitieren

Ich dachte mir das das auch mit den fstreams geht.

_________________
no risk no fun!
Cho++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
Beitrag Cho++ Mitglied 23:36:05 20.01.2012   Titel:              Zitieren

Hmm jetzt kommt Fehler :

Eject yourself
: input/output error

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
static int open_cd()

{
    int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
    if(fd == -1)
    {
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");
        else
        perror("Fehler bei open()");
        exit(EXIT_FAILURE);
    }
    return fd;
}

static void open_tray (int cdrom)
{
    if(ioctl (cdrom, CDROMEJECT)== -1)
    {
    perror ("Eject yourself\n");
    exit (EXIT_FAILURE);
    }
}
int main()

{
    int fd = open_cd();
    open_tray(fd);

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
static int open_cd()

{
int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
if(fd == -1)
{
if(errno = ENOMEDIUM)
printf("Keine CD im Laufwerk\n");
else
perror("Fehler bei open()");
exit(EXIT_FAILURE);
}
return fd;
}

static void open_tray (int cdrom)
{
if(ioctl (cdrom, CDROMEJECT)== -1)
{
perror ("Eject yourself\n");
exit (EXIT_FAILURE);
}
}
int main()

{
int fd = open_cd();
open_tray(fd);

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
static int open_cd()

{
    int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
    if(fd == -1)
    {
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");
        else
        perror("Fehler bei open()");
        exit(EXIT_FAILURE);
    }
    return fd;
}

static void open_tray (int cdrom)
{
    if(ioctl (cdrom, CDROMEJECT)== -1)
    {
    perror ("Eject yourself\n");
    exit (EXIT_FAILURE);
    }
}
int main()

{
    int fd = open_cd();
    open_tray(fd);

}

_________________
no risk no fun!
Cho++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
Beitrag Cho++ Mitglied 16:20:38 24.01.2012   Titel:              Zitieren

Hmm ?

_________________
no risk no fun!
Cybertec
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.12.2008
Beiträge: 463
Beitrag Cybertec Mitglied 17:04:56 24.01.2012   Titel:              Zitieren

Welche Header hast du denn überhaupt eingebunden?

Mir scheint als ob da noch was fehlen würde?
pyhax
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 581
Beitrag pyhax Mitglied 17:08:45 24.01.2012   Titel:              Zitieren

Ich habe die Lösung gefunden:

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
static int open_cd()

{
    int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
    if(fd == -1)
    {
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");
        else
        perror("Fehler bei open()");
        exit(EXIT_FAILURE);
    }
    return fd;
}

static void open_tray (int cdrom)
{
   
    if(ioctl (cdrom, CDROM_LOCKDOOR, 0) < 0) {
    perror("Unlock door\n");
    }
    if(ioctl (cdrom, CDROMEJECT)== -1)
    {
    perror ("Eject yourself\n");
    exit (EXIT_FAILURE);
    }
}
int main()

{
    int fd = open_cd();
    open_tray(fd);

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
static int open_cd()

{
int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
if(fd == -1)
{
if(errno = ENOMEDIUM)
printf("Keine CD im Laufwerk\n");
else
perror("Fehler bei open()");
exit(EXIT_FAILURE);
}
return fd;
}

static void open_tray (int cdrom)
{

if(ioctl (cdrom, CDROM_LOCKDOOR, 0) < 0) {
perror("Unlock door\n");
}
if(ioctl (cdrom, CDROMEJECT)== -1)
{
perror ("Eject yourself\n");
exit (EXIT_FAILURE);
}
}
int main()

{
int fd = open_cd();
open_tray(fd);

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
static int open_cd()

{
    int fd = open(CDROM,O_RDONLY | O_NONBLOCK);
    if(fd == -1)
    {
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");
        else
        perror("Fehler bei open()");
        exit(EXIT_FAILURE);
    }
    return fd;
}

static void open_tray (int cdrom)
{
   
    if(ioctl (cdrom, CDROM_LOCKDOOR, 0) < 0) {
    perror("Unlock door\n");
    }
    if(ioctl (cdrom, CDROMEJECT)== -1)
    {
    perror ("Eject yourself\n");
    exit (EXIT_FAILURE);
    }
}
int main()

{
    int fd = open_cd();
    open_tray(fd);

}


Wichtig ist, das das Device nicht gemounted ist.

_________________
Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)
Cho++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
Beitrag Cho++ Mitglied 17:25:37 24.01.2012   Titel:              Zitieren

Code:
Unlock door
: Device or resource busy
Eject yourself
: Input/output error
Code:
Unlock door
: Device or resource busy
Eject yourself
: Input/output error
Code:
Unlock door
: Device or resource busy
Eject yourself
: Input/output error

Weis meinste den damit wie kann ich das gucken obs gemountet ist ?

_________________
no risk no fun!
pyhax
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 581
Beitrag pyhax Mitglied 17:35:21 24.01.2012   Titel:              Zitieren

mach mal: (in der Konsole) umount /dev/cdrom und starte erst danach das Program.

_________________
Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)
nman
Moderator

Benutzerprofil
Anmeldungsdatum: 19.02.2002
Beiträge: 12947
Beitrag nman Moderator 18:01:36 24.01.2012   Titel:              Zitieren

pyhax schrieb:
C/C++ Code:
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");
C/C++ Code:
if(errno = ENOMEDIUM)
printf("Keine CD im Laufwerk\n");
C/C++ Code:
        if(errno = ENOMEDIUM)
        printf("Keine CD im Laufwerk\n");

Siehst du den Bug?

_________________
…but tuesday's just as bad.
Cho++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2011
Beiträge: 188
Beitrag Cho++ Mitglied 18:46:11 24.01.2012   Titel:              Zitieren

Jetzt versteh ich auch nichts mehr es ging die ganze Zeit nicht Laptop
abgestürzt und jetzt kommt das :

Code:
Unblock door
:Device or resource busy
Code:
Unblock door
:Device or resource busy
Code:
Unblock door
:Device or resource busy

Aber er öffnet den Laufwerk und mach was ich im sage xD

_________________
no risk no fun!
C/C++ Forum :: Linux/Unix ::  File descriptoren in c++  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.