---
title: "path_create_directory()"
description: "The path_create_directory() function creates a new directory at the specified path relative to the given directory. It requires the PATH_CREATE_DIRECTORY right to be set on the directory where the new directory will be created."
url: "https://wasix.org/docs/api-reference/wasi/path_create_directory/"
markdown: "https://wasix.org/docs/api-reference/wasi/path_create_directory.md"
---

# `path_create_directory()`

Create a directory at a path.

## Description

The `path_create_directory()` function creates a new directory at the specified path relative to the given directory. It requires the `PATH_CREATE_DIRECTORY` right to be set on the directory where the new directory will be created.

On POSIX systems, a similar functionality is provided by the `mkdir()` function. It creates a new directory with the given name and the specified permission mode. The `mkdir()` function is part of the POSIX standard and is widely supported across different platforms.

## Syntax

```ebnf
  ;;; Note: This is similar to `mkdirat` in POSIX.
  ;;; Create a directory.
  (@interface func (export "path_create_directory")
    (param $fd $fd)
    ;;; The path at which to create the directory.
    (param $path string)
    (result $error (expected (error $errno)))
  )
```

## Parameters

- `ctx`: A mutable reference to the function environment.
- `fd`: The file descriptor representing the directory that the path is relative to.
- `path`: A wasm pointer to a null-terminated string containing the path data.
- `path_len`: The length of the `path` string.

## Return Value

The function returns an `Errno` value indicating the success or failure of the operation. If the operation is successful, it returns `Errno::Success`. Otherwise, it returns an appropriate `Errno` value.

## Logging

This function has been instrumented with trace-level logging. It will log the following information:

- `%fd`: The file descriptor representing the directory.
- `path`: The path string.

## Note

The `path_create_directory()` function creates a new directory at the specified path relative to the given directory. It checks if the specified directory has the necessary rights and creates the directory accordingly. On POSIX systems, a similar functionality is provided by the `mkdir()` function.

---

[Documentation index](https://wasix.org/llms.txt) · [HTML version](https://wasix.org/docs/api-reference/wasi/path_create_directory/)
