Welcome to little lamb

Code » limb » master » tree

[master] / src / doc / djbunix.h / open_b.3.md

% limb manual
% open_b(3)
% limb 0.1.0
% 2023-07-24

# NAME

open_b, open_atb - open a file using given function then clears *O_NONBLOCK*

# SYNOPSIS

    #include <limb/djbunix.h>

```pre hl
int open_b(open_fn <em>fn</em>, const char *<em>file</em>)
int open_atb(openat_fn <em>fnat</em>, int <em>fd</em>, const char *<em>file</em>)
```

# DESCRIPTION

The `open_b`() function calls the function `fn` with `file` as its only
argument. This function should open the file whose name is pointed by `file` and
return the corresponding file descriptor on success, otherwise it should return
-1 and set `errno` to indicate the error.

After the file has been successfully opened, the `open_b`() function will ensure
that it is in blocking mode, i.e. that it has *O_NONBLOCK* clear.

The `open_atb`() function is similar except that it takes an additional argument
`fd` being used along side `file` as arguments to the function `fnat`, which
must be similar to `fn` except when `file` is a relative path, in which case it
must be treated as relative to the directory associated with the file
descriptor `fd`, which may be *AT_FDCWD* to user the current working directory.

# RETURN VALUE

On success, these functions return the opened file descriptor, which always has
the *O_NONBLOCK* flag clear. Otherwise they return -1 and set `errno` to
indicate the error.

# ERRORS

The `open_b`() and `open_atb`() functions may fail and set `errno` for any of
the errors specified for the given `fn` or `fnat` function, respectively.

They may also fail and set `errno` for the errors described for [ndelay_off](3).