media ioctl()
&manvol;

# media-ioctl

Control a media device

          #include <sys/ioctl.h>

    	int ioctl
    	int fd
    	int request
    	void *argp

## Arguments

`fd`

  &fd;

`request`

  Media ioctl request code as defined in the media.h header file, for example MEDIA_IOC_SETUP_LINK.

`argp`

  Pointer to a request-specific structure.

## Description

The `ioctl()` function manipulates media device parameters. The argument `fd` must be an open file descriptor.

The ioctl `request` code specifies the media function to be called. It has encoded in it whether the argument is an input, output or read/write parameter, and the size of the argument `argp` in bytes.

Macros and structures definitions specifying media ioctl requests and their parameters are located in the media.h header file. All media ioctl requests, their respective function and parameters are specified in .

## Return Value

`ioctl()` returns 0 on success. On failure, -1 is returned, and the `errno` variable is set appropriately. Generic error codes are listed below, and request-specific error codes are listed in the individual requests descriptions.

When an ioctl that takes an output or read/write parameter fails, the parameter remains unmodified.

EBADF

  `fd` is not a valid open file descriptor.

EFAULT

  `argp` references an inaccessible memory area.

EINVAL

  The `request` or the data pointed to by `argp` is not valid. This is a very common error code, see the individual ioctl requests listed in for actual causes.

ENOMEM

  Insufficient kernel memory was available to complete the request.

ENOTTY

  `fd` is not associated with a character special device.