用C程序制作目录

时间:2016-12-16 08:06:06

标签: c linux function

对于我的任务,我要写一个函数来创建一个目录,但我根本不允许使用SYS函数!还有其他方法吗?我一直在寻找它,但没有找到任何实际工作。 该函数必须至少在Linux上运行。

5 个答案:

答案 0 :(得分:1)

这应该适用于Linux(不确定你的意思和#34; sys功能",所以可能不允许):

#include <sys/stat.h>    
mkdir("/tmp/foobar", 0);

答案 1 :(得分:0)

您还可以查看system()功能。

#include <stdlib.h>
int system(const char *command);

答案 2 :(得分:0)

如果限制是&#34;不能使用以sys&#34;开头的包含文件中声明的任何函数,这听起来更像是一个谜题,而不是编程练习。然而...

您可以编写一个首先调用fork的函数,然后调用子调用execl(或exec*系列中的其他函数,如果这看起来是更好的选择)。 forkexec*都可用并在#include <unistd.h>运行后声明。不幸的是,每次打电话都会留下一个僵尸,因为你不能打电话给waitpid来清理孩子。

或者,您只需自己声明mkdirint mkdir(const char*, unsigned int);

我不清楚这两种解决方案中哪一种是最差的,但它们都不是我期望接近的任何东西&#34;正常的代码&#34;。

答案 3 :(得分:0)

根据mkdir函数的手册页,https://linux.die.net/man/3/mkdir它期望路径(char *)和数据类型mode_t的模式作为参数,模式mode_tsys/stat.h中定义的i会尝试模拟头文件中定义的mode_t结构。http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html

答案 4 :(得分:-1)

尝试

#include <direct.h>
int _mkdir( const char *dirname );