In the last episode (Oct 14), Shawn Webb said: > I've got to rewrite the source due to hard disk problems, so I'll just put > it in this email: > > arg = FORMAT; > if (ioctl(fd, SNDCTL_DSP_SETFMT, &arg) < 0) > { > perror("ioctl setfmt"); > exit(1); > } > > if (ioctl(fd, SNDCTL_DSP_GETOSPACE, &arg) < 0) > { > perror("ioctl getospace"); > exit(1); > }
SNDCTL_DSP_GETOSPACE takes a pointer to an "audio_buf_info" type, so you actually asked it to write sizeof(audio_buf_info) bytes to the location of the "arg" variable, which is... (drumroll) on the stack :) Create another variable "audio_buf_info info;" above main, and change that call to "if (ioctl(fd, SNDCTL_DSP_GETOSPACE, &info) < 0)" and your program will run fine. -- Dan Nelson [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"