Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中使用mkdir-p创建文件的父文件夹_C - Fatal编程技术网

在c中使用mkdir-p创建文件的父文件夹

在c中使用mkdir-p创建文件的父文件夹,c,C,我需要这方面的线索。 我正在使用glibc的dgettext实用程序进行语言翻译。 我在某个位置有一个文件x.mo,例如:/usr/share/x.mo,但dgettext处理目录结构/usr/share/(language/mSG/)x.mo如何在C中创建此中间目录语言/mSG。您可以使用: #包括 int mkdir(常量字符*路径,模式_t模式); 但更容易使用的是: #包括 int系统(常量字符*命令); 这样的东西可能适合你: #include <stdlib.h> i

我需要这方面的线索。 我正在使用glibc的dgettext实用程序进行语言翻译。 我在某个位置有一个文件x.mo,例如:/usr/share/x.mo,但dgettext处理目录结构/usr/share/(language/mSG/)x.mo如何在C中创建此中间目录语言/mSG。

您可以使用:

#包括
int mkdir(常量字符*路径,模式_t模式);
但更容易使用的是:

#包括
int系统(常量字符*命令);
这样的东西可能适合你:

#include <stdlib.h>
int main(void) {
   system("mkdir -p /usr/share/language/mSG");
   system("ln -s /usr/share/x.mo /usr/share/language/mSG");
}
#包括
内部主(空){
系统(“mkdir-p/usr/share/language/mSG”);
系统(“ln-s/usr/share/x.mo/usr/share/language/mSG”);
}

使用popen系统api通过C代码运行shell命令

FILE *pf;
char command[512];

sprintf(command, "mkdir -p /usr/share/language/mSG");

pf = popen(command,"r"); 

if(!pf){
  fprintf(stderr, "popen failure \n");
  return;
}

到目前为止,您尝试了什么?您想通过C而不是shell命令创建目录吗?您可以看到system api或popen api。注意:我最初反向获取ln-s参数,但将其编辑为正确的顺序,并且路径的文件名部分暗示了ln-s的第二个参数,因此我省略了它。
#include <stdlib.h>
int main(void) {
   system("mkdir -p /usr/share/language/mSG");
   system("ln -s /usr/share/x.mo /usr/share/language/mSG");
}
FILE *pf;
char command[512];

sprintf(command, "mkdir -p /usr/share/language/mSG");

pf = popen(command,"r"); 

if(!pf){
  fprintf(stderr, "popen failure \n");
  return;
}