1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2.. c:namespace:: CEC 3 4.. _cec-func-open: 5 6********** 7cec open() 8********** 9 10Name 11==== 12 13cec-open - Open a cec device 14 15Synopsis 16======== 17 18.. code-block:: c 19 20 #include <fcntl.h> 21 22.. c:function:: int open( const char *device_name, int flags ) 23 24Arguments 25========= 26 27``device_name`` 28 Device to be opened. 29 30``flags`` 31 Open flags. Access mode must be ``O_RDWR``. 32 33 When the ``O_NONBLOCK`` flag is given, the 34 :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls 35 will return the ``EAGAIN`` error code when no message or event is available, and 36 ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`, 37 :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and 38 :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` 39 all return 0. 40 41 Other flags have no effect. 42 43Description 44=========== 45 46To open a cec device applications call :c:func:`open()` with the 47desired device name. The function has no side effects; the device 48configuration remain unchanged. 49 50When the device is opened in read-only mode, attempts to modify its 51configuration will result in an error, and ``errno`` will be set to 52EBADF. 53 54Return Value 55============ 56 57:c:func:`open()` returns the new file descriptor on success. On error, 58-1 is returned, and ``errno`` is set appropriately. Possible error codes 59include: 60 61``EACCES`` 62 The requested access to the file is not allowed. 63 64``EMFILE`` 65 The process already has the maximum number of files open. 66 67``ENFILE`` 68 The system limit on the total number of open files has been reached. 69 70``ENOMEM`` 71 Insufficient kernel memory was available. 72 73``ENXIO`` 74 No device corresponding to this device special file exists. 75