Удивился, что нет ни одного правильного ответа. Не поленился и написал на чистом Си.
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <linux/limits.h>
#define QUOTE_H(W) #W
#define QUOTE(W) QUOTE_H(W)
int main()
{
char name[NAME_MAX+1] = "";
char path[PATH_MAX] = "/home/Work/cpp/";
printf("Input project name: ");
if (scanf("%s"QUOTE(NAME_MAX), name) == -1)
{
fprintf(stderr, "Empty file name");
return EXIT_FAILURE;
}
size_t const max_name_len = PATH_MAX - 1 - strlen(path);
if (strlen(name) > max_name_len)
{
fprintf(stderr, "File name too long");
return EXIT_FAILURE;
}
strncat(path, name, max_name_len);
if (mkdir(path, 0755) == -1)
perror("Cannot create directory");
else
printf("'%s' created\n", path);
return EXIT_SUCCESS;
}