Problem mit CD-Programm
-
Hallo,
ich arbeite grade das buch "C und Linux" durch. Zwar funktionierte jedes programm super, aber jetzt halt nicht mehrKonsolenauszug:
cd4.c:1: error: syntax error before numeric constant In file included from /usr/include/_G_config.h:44, from /usr/include/libio.h:32, from /usr/include/stdio.h:72, from cd4.c:5: /usr/include/gconv.h:72: error: type specifier omitted for parameter `size_t' /usr/include/gconv.h:72: error: syntax error before `*' token /usr/include/gconv.h:88: error: type specifier omitted for parameter `size_t' /usr/include/gconv.h:88: error: syntax error before `*' token /usr/include/gconv.h:97: error: type specifier omitted for parameter `size_t' /usr/include/gconv.h:97: error: syntax error before `*' token /usr/include/gconv.h:174: error: 'size_t' is used as a type, but is not defined as a type. In file included from /usr/include/stdio.h:72, from cd4.c:5: /usr/include/libio.h:354: error: type specifier omitted for parameter `size_t' /usr/include/libio.h:354: error: syntax error before `)' token /usr/include/libio.h:363: error: type specifier omitted for parameter `size_t' /usr/include/libio.h:363: error: syntax error before `)' token /usr/include/libio.h:479: error: syntax error before `(' token In file included from cd4.c:5: /usr/include/stdio.h:286: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:286: error: syntax error before `,' token /usr/include/stdio.h:292: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:292: error: syntax error before `*' token /usr/include/stdio.h:304: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:304: error: syntax error before `)' token /usr/include/stdio.h:311: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:311: error: syntax error before `)' token /usr/include/stdio.h:353: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:353: error: syntax error before `,' token /usr/include/stdio.h:357: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:357: error: syntax error before `,' token /usr/include/stdio.h:562: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:562: error: syntax error before `*' token /usr/include/stdio.h:565: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:565: error: syntax error before `*' token /usr/include/stdio.h:575: error: type specifier omitted for parameter `size_t' /usr/include/stdio.h:575: error: syntax error before `*' token /usr/include/stdio.h:605: error: syntax error before `(' token /usr/include/stdio.h:611: error: syntax error before `(' token /usr/include/stdio.h:633: error: syntax error before `(' token /usr/include/stdio.h:635: error: syntax error before `(' token In file included from cd4.c:5: /usr/include/stdio.h:836: error: syntax error before `}' token In file included from cd4.c:6: /usr/include/unistd.h:312: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:312: error: syntax error before `)' token /usr/include/unistd.h:318: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:318: error: syntax error before `)' token /usr/include/unistd.h:328: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:328: error: syntax error before `,' token /usr/include/unistd.h:336: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:336: error: syntax error before `,' token /usr/include/unistd.h:356: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:356: error: syntax error before `,' token /usr/include/unistd.h:360: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:360: error: syntax error before `,' token /usr/include/unistd.h:448: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:448: error: syntax error before `)' token In file included from cd4.c:6: /usr/include/unistd.h:544: error: syntax error before `(' token /usr/include/unistd.h:712: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:712: error: syntax error before `)' token /usr/include/unistd.h:740: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:740: error: syntax error before `)' token /usr/include/unistd.h:769: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:769: error: syntax error before `)' token In file included from cd4.c:6: /usr/include/unistd.h:791: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:791: error: syntax error before `)' token /usr/include/unistd.h:798: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:798: error: syntax error before `)' token /usr/include/unistd.h:809: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:809: error: syntax error before `)' token /usr/include/unistd.h:811: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:811: error: syntax error before `)' token /usr/include/unistd.h:829: error: type specifier omitted for parameter `size_t' /usr/include/unistd.h:829: error: syntax error before `,' token /usr/include/stdio.h:781: error: previous declaration of `char* ctermid(char*)' with C++ linkage /usr/include/unistd.h:1040: error: conflicts with new declaration with C linkage In file included from /usr/include/sys/types.h:266, from /usr/include/bits/fcntl.h:26, from /usr/include/fcntl.h:33, from cd4.c:8: /usr/include/bits/pthreadtypes.h:48: error: 'size_t' is used as a type, but is not defined as a type. /usr/include/bits/pthreadtypes.h:51: error: 'size_t' is used as a type, but is not defined as a type. In file included from /usr/include/fcntl.h:33, from cd4.c:8: /usr/include/bits/fcntl.h:186: error: type specifier omitted for parameter ` size_t' /usr/include/bits/fcntl.h:186: error: syntax error before `)' token cd4.c: In function `void err_exit(char*, int)': cd4.c:14: error: `exit' undeclared (first use this function) cd4.c:14: error: (Each undeclared identifier is reported only once for each function it appears in.) cd4.c:62:3: warning: no newline at end of file
Und hier nochmal der code:
/* cdplay.c - Audio-CD abspielen */ # include <stdio.h> # include <unistd.h> # include <sys/ioctl.h> # include <fcntl.h> # include <linux/cdrom.h> void err_exit(char *err_text, int return_code) { perror(err_text); exit(return_code); } int main() { int fd; struct cdrom_tocentry toc_entry; struct cdrom_msf start_stop; if ((fd = open("/dev/cdrom", O_RDONLY)) == -1) err_exit("cdplay: Can’t open /dev/cdrom", 1); /* Anfang des 1. Stuecks */ toc_entry.cdte_track = 1; toc_entry.cdte_format = CDROM_MSF; if (ioctl(fd, CDROMREADTOCENTRY, &toc_entry) == -1) err_exit("cdplay: ioctl() failed", 1); start_stop.cdmsf_min0 = toc_entry.cdte_addr.msf.minute; start_stop.cdmsf_sec0 = toc_entry.cdte_addr.msf.second; start_stop.cdmsf_frame0 = toc_entry.cdte_addr.msf.frame; /* Ende des letzten Stuecks */ toc_entry.cdte_track = CDROM_LEADOUT; toc_entry.cdte_format = CDROM_MSF; if (ioctl(fd, CDROMREADTOCENTRY, &toc_entry) == -1) err_exit("cdplay: ioctl() failed", 1); start_stop.cdmsf_min1 = toc_entry.cdte_addr.msf.minute; start_stop.cdmsf_sec1 = toc_entry.cdte_addr.msf.second; start_stop.cdmsf_frame1 = toc_entry.cdte_addr.msf.frame; if (ioctl(fd, CDROMPLAYMSF, &start_stop) == -1) err_exit("cdplay: ioctl() failed", 1); printf("Press <RETURN> to stop playing.\n"); getchar(); if (ioctl(fd, CDROMSTOP) == -1) err_exit("cdplay: ioctl() failed", 1); close(fd); return(0); }
Wie bringe ich das zum laufen? Ich will jetzt aber auch nicht zuviel daran herumfricklern
-
Wie versuchst Du denn, das zu kompilieren? Bei mir funktioniert das ohne Probleme, auch wenn Deine Code-Formatierung etwas gewöhnungsbedürftig ist.
-
Mit gcc ??
<><><><><><><>
g++ cd.c -o cd./cd
<><><><><><><>
-
Das ist ein C-Programm, kein C++-Programm, daher kompilierst Du es mit gcc und nicht mit g++.
~ % gcc -o test test.c ~ % ./test cdplay: Can't open /dev/cdrom: No medium found ~ %