-1
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
int main(int argc, const char *argv[])
{
char* original_path = "/home/userxxx/somedir/newdir";
if (mkdir(original_path,0777) == -1) {
perror(argv[0]);
exit(EXIT_FAILURE);
}
return 0;
}
これはシステムコールではないので、親ディレクトリを作成するには-pを使用できません。存在しない場合は、親ディレクトリと中間ディレクトリも作成する必要があります。mkdir Posix関数を使用してディレクトリを作成したいが、親ディレクトリが存在しない。
真っ直ぐな答えは、存在しないディレクトリをすべてパスをたどって作成することです。 –
おそらく親ディレクトリを最初に作成しますか? –
コードで実際に使用されている 'mkdir(2)' 'システムコールと、' '-pを受け入れるがシステムコールではない' 'mkdir(1)' 'ツールとの間には細かい違いがあります。 – arsv