Martin McCormick <martin(a)dc.cis.okstate.edu> writes:
The audio device file descriptor is defined as
FILE *audio_fd;
...
Breakpoint 2, main (argc=2, argv=0xbffff684) at
vx2ch.c:118
118 if (ioctl(audio_fd, SNDCTL_DSP_SETFMT, &format)==-1)
A "FILE *" is not a file descriptor -- libc functions like fopen,
fread, fprintf etc. work with FILE *s, and system calls like open,
read and ioctl work with integer file descriptors. You can use the
fileno function to get the file descriptor that the FILE * is using,
so change "audio_fd" to "fileno(audio_fd)" in that ioctl call, and it
should be a bit happier.
The compiler should be complaining about you converting a pointer to
an integer when you compile that ioctl call as it currently stands;
it's always a good idea to use the -Wall compiler flag and pay careful
attention to the warnings it produces.
--
Adam Sampson <ats(a)offog.org> <http://offog.org/>