C语言 mkdir 的默示声明



对于我的问题,假设我有两个函数,它们都带有库文件夹中.h文件上的原型,以及.c辅助文件中的实现(如下所示),我将在我的程序中使用它们。

Calsis.c

 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <fcntl.h>
 #include "include/calsis.h" /* Extern header */ 
char folder_name[30] = "Information";
void no_args() /* Function 1 */
{
  printf("Hello, world!n");
   if ( mkdir(folder_name, S_IRWXU) == -1 )
    perror("Can't create a new folder");
}
void with_args(char *foo) /* Function 2 */
{
   printf("Hello, world!n");
   printf("Name: %sn", foo);
   if ( mkdir(folder_name, S_IRWXU) == -1 )
    perror("Can't create a new folder");
}

对于我稍后要做的事情,我需要在这两个函数中创建一个带有 mkdir 的文件夹,但是,在通过使用实现的函数编译 .c 文件来生成目标文件 calsis.o 时,使用 GCC 的编译给了我一个警告,即 mkdir 函数是隐式声明的

知道我可以删除此警告吗?

您尚未包含mkdir的标头:

来自 man(2) mkdir:

SYNOPSIS
       #include <sys/stat.h>
       #include <sys/types.h>
       int mkdir(const char *pathname, mode_t mode);

最新更新