trouble with open()

Daniel Jacobowitz drow at false.org
Mon Oct 4 02:46:47 EST 1999


On Sun, Oct 03, 1999 at 12:24:54PM -0400, hollis at andrew.cmu.edu wrote:
> 
> Ok, maybe I'm just being really stupid, but the following code isn't
> working for me.
> 
> I'm trying to open /dev/dsp. The file descriptor returned by open is 0,
> which is supposed to be stdin, right? Anyways, a subsequent call to
> ioctl doesn't like fd 0 either.
> 
> [dev->path = "/dev/dsp"]
> 
>     printf("attmpting to open %s\n", dev->path);
>     if (dev->dev_fd = open(dev->path, O_RDWR) < 0) {
>         perror(dev->path);
>         fprintf(stderr, "Couldn't open audio device %s!\n", dev->path);
>         return -1;
>     }
>     printf("dev_fd = %i\n", dev->dev_fd);

Nope, not trouble with open(), trouble with if.

Take another good look at your if clause; you need another set
of parentheses around (dev->dev_fd = open(dev->path, O_RDWR). = is
lower precedence than <.


> 
> When I run this code, my output is:
> attempting to open /dev/dsp
> dev_fd = 0
> 
> The permissions are set fine, and I get the same problem with
> /dev/audio.
> 
> What am I doing wrong? I ask because I'm a little frustrated at this
> point.
> 
> -Hollis
> 
> 


Dan

/--------------------------------\  /--------------------------------\
|       Daniel Jacobowitz        |__|        SCS Class of 2002       |
|   Debian GNU/Linux Developer    __    Carnegie Mellon University   |
|         dan at debian.org         |  |       dmj+ at andrew.cmu.edu      |
\--------------------------------/  \--------------------------------/

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list