## Name

uname - retrieve information about the current kernel

## Synopsis

```**c++
#include <sys/utsname.h>

int uname(struct utsname* buf);
```

## Description

Retrieves information about the current kernel and writes it into the `utsname`
structure pointed to by `buf`.

```**c++
struct utsname {
    char sysname[];
    char nodename[];
    char release[];
    char version[];
    char machine[];
};
```

## Return value

If successful, returns 0. Otherwise, returns -1 and sets `errno` to describe the error.

## Errors

* `EFAULT`: `buf` is not a writable address.

## See also

* [`uname`(1)](../man1/uname.md)