Saturday, October 29, 2016

Create a Directory using C on Linux

To create a directory on Linux using C, take a look at the following code.

#include <stdio.h>
#include <sys/stat.h>

int main(void) {
    char *foldername = "test_dir";

    int status = mkdir(foldername, S_IRUSR | S_IWUSR | S_IXUSR);

    if(status == 0) {
        printf("Folder successfully created.\n");
    } else {
        printf("Error: Folder creation failed.\n");
    }

    return 0;
}

How it works:

First I declared a variable foldername. This variable stores the name of the folder that I want to create.

Then I used the mkdir(foldername, permission) library functions from sys/stat.h. This function will return 0 if a folder is created or -1 on failure. I stored the return value on a variable status.

Then I checked the status variable to see if a folder is created(status == 0) or not(status == -1).


Here is used, S_IRUSR | S_IWUSR | S_IXUSR as permission. It means, the newly created directory will have read, write, and execute permission of the owner of the directory.

You can find a whole list of permission constants here. I am writing some common easy to remember ones here.


S_IRUSR - Read permission of the owner of the directory.
S_IWUSR - Write permission of the owner of the directory.
S_IXUSR - Execute permission of the owner of the directory.
S_IRGRP - Read permission of the group.
S_IWGRP - Write permission of the group.
S_IXGRP - Execute permission of the group.
S_IROTH - Read permission to others.
S_IWOTH - Write permission to others.
S_IXOTH - Execute permission to others.

No comments:

Post a Comment