# Работа с тръби

```c
#include <unistd.h>
int pipe(int pipefd[2]);
```

**pipe()** - създава анонимна тръба.

* Масивът **pipefd** се използва за да върне два файлови дескриптора, сочещи към краищата на тръбата.
* **pipefd\[0]** се отнася за четене в края на тръбата
* **pipefd\[1]** се отнася за писане в края на тръбата.

```c
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
```

**mkfifo**() - създава наименувана тръба (**FIFO**).

* **mode** указва правата за **FIFO** структурата. Той се модифицира от метода **umask** по обичайния начин: разрешенията на създадения файл са (**mode & \~umask**).
