> For the complete documentation index, see [llms.txt](https://dimitar-minchev.gitbook.io/linux-system-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dimitar-minchev.gitbook.io/linux-system-programming/05_ipc/11_pipes_routines.md).

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

```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**).
