对于我的任务,我要写一个函数来创建一个目录,但我根本不允许使用SYS函数!还有其他方法吗?我一直在寻找它,但没有找到任何实际工作。 该函数必须至少在Linux上运行。
答案 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*
系列中的其他函数,如果这看起来是更好的选择)。 fork
和exec*
都可用并在#include <unistd.h>
运行后声明。不幸的是,每次打电话都会留下一个僵尸,因为你不能打电话给waitpid
来清理孩子。
或者,您只需自己声明mkdir
,int mkdir(const char*, unsigned int);
。
我不清楚这两种解决方案中哪一种是最差的,但它们都不是我期望接近的任何东西&#34;正常的代码&#34;。
答案 3 :(得分:0)
根据mkdir
函数的手册页,https://linux.die.net/man/3/mkdir它期望路径(char *
)和数据类型mode_t
的模式作为参数,模式mode_t
是sys/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 );