mkdir -p
の機能を模倣するプログラムをC言語で書いたので、その作業記録です。
作ったものの全量です。
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <sys/types.h> int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage: mkdir <PATH>"); exit(EXIT_FAILURE); } unsigned int current = 0; char buf[256]; for (size_t i = 0;; i++) { if (argv[1][i] == '\0') { printf("[create last %s]\n", argv[1]); if (mkdir(argv[1], 0775) < 0) { perror(argv[0]); exit(EXIT_FAILURE); } break; } printf("[now %c]\n", argv[1][i]); if (argv[1][i] == '/') { buf[current] = '\0'; printf("[create %s]\n", buf); if (mkdir(buf, 0775) < 0) { perror(argv[0]); exit(EXIT_FAILURE); } buf[current] = '/'; } else { buf[current] = argv[1][i]; } current++; } exit(EXIT_SUCCESS); }