隐式声明scandir; alphasort 未声明

2024-01-21

我正在尝试使用scandir打印当前目录中的文件列表。当我尝试编译时,我收到以下错误和警告:

warning: implicit declaration of function ‘scandir’ [-Wimplicit-function-declaration]
error: ‘alphasort’ undeclared (first use in this function)
note: each undeclared identifier is reported only once for each function it appears in

我包括<dirent.h>,据我所知应该定义scandir()以及所有相关功能。我的代码中没有看到任何错误:

#include <dirent.h>
...
int printFiles(){
    struct dirent **nameList;
    int numOfFiles = scandir(".", &nameList, 0, alphasort);

    //TODO print file names
    return numOfFiles;
}
....

我正在运行 Ubuntu 12.04,并且正在使用以下命令进行编译gcc-c99 flag.

我只是忽略了一些事情吗?我不明白为什么它无法编译。


如果你使用-std=c99,只有严格属于 C99 标准一部分的函数才包含在头文件中。scandir()不在C99标准中。因此,您必须设置一个预处理器变量以确保包含函数原型。例如,手册页scandir()表示设置_BSD_SOURCE or _SVID_SOURCE在执行之前的预处理器变量#include将解决问题。或者,您可以使用#define _GNU_SOURCE这反过来会为你设置很多不同的变量(包括_BSD_SOURCE and _SVID_SOURCE).

您的代码仍将在出现警告的情况下进行编译并正常工作,因为 C 允许您使用隐式定义的函数进行编译,并且链接器将正确地将调用链接到scandir()到适当的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

隐式声明scandir; alphasort 未声明 的相关文章

随机推荐

  • Java - 信号量释放而不获取

    我有一些线程 它们被赋予随机数 1 到 n 并被指示按排序顺序打印它们 我使用信号量 这样我获取的许可证数量 随机数 并释放比获取的许可证多的许可证 获得 随机数 释放 1 随机数 信号量的初始许可计数为 1 因此随机数为 1 的线程应该获
  • 如何在界面生成器中对视图施加约束以满足 Xcode 8 中的所有 iphone 屏幕

    我一直在尝试以下内容 例如固定 纵横比 垂直间距 水平 垂直间距 前导 尾随间距 但对于 iPhone SE 及以上版本的所有 iPhone 屏幕 它并不能统一工作 您不再对每个设备应用约束 您可以为每个尺寸类别应用自动布局约束 如果您知道
  • 如何在前端js文件中安装、导入和使用DOMPurify?

    这更像是一个 您能否确认这是正确的 类型的问题 因为我认为我在编写问题的过程中解决了这个问题 但希望这对其他在这方面有点犹豫的人有帮助实施DOM纯化 https github com cure53 DOMPurify 简洁版本 进口和使用是
  • 在 C++ 中,传递给函数的指针的更改是否反映在调用函数中?

    如果我将指针P从函数f1传递给函数f2 并在f2中修改P的内容 这些修改会自动反映在f1中吗 例如 如果我需要删除链表中的第一个节点 void f2 Node p Node tmp p p p gt next delete tmp 对 P
  • 遮罩周围的 UIImage 边框

    我目前的代码是在我的上创建一个面具image http jeroendeleeuw com post 33638733049 how to mask images with core graphics in ios UIImage mask
  • 通过 openCSV 填充 Javabean - 代码解释

    我刚刚开始使用 Java 有很多缺失的知识 但我需要编写一个简单的类 它将使用 openCSV 将 csv 文件转换为 JavaBean 我在这里找到了类似问题的一些答案 但没有人能够帮助我 到目前为止 已经遇到过这段代码 ColumnPo
  • `$this->name` 和 `$this->$name` 有什么区别?

    我想知道有什么区别 this gt name and this gt name 也确实 this必须严格命名this或者它可以是任何东西吗 this是保留变量名 不能用于其他任何用途 它特别指出您当前正在使用的对象 您必须使用 this因为
  • 显示绝对值 angularjs

    我从 JSON 对象中得到一个负数 我想删除负数中的 只显示绝对值 收到json value 2 34 我想展示的内容 值为 2 34 您可以使用角度过滤器 js file angular module myApp filter makeP
  • Spring Security 中会话 cookie 的同站点标志

    是否可以设置同站 Cookie https datatracker ietf org doc html draft west first party cookies 07Spring Security 中的标志 如果没有 请问是否有增加支持
  • 手动将 RGB 转换为灰度

    我想手动将 RGB 图像转换为灰度图像 而无需在张量流中使用库 所以我写了以下内容 import tensorflow as tf import matplotlib image as mpimg import matplotlib pyp
  • 如何使 IPython 笔记本 matplotlib 绘图内联

    我正在尝试在 MacOS X 上使用带有 Python 2 7 2 和 IPython 1 1 0 的 IPython 笔记本 我无法让 matplotlib 图形内联显示 import matplotlib import numpy as
  • std::hardware_delta_interference_size 在哪里?

    看起来像std hardware destructive interference size未在 libc 或 libstdc 中定义 我已经 grep 了我的本地安装 我查看了各自的 svn 存储库 他们应该在
  • Git 重置不起作用

    我进行了一次提交 拉取并合并了一些更改 然后进行了第二次提交 当我想回到第一次提交时 我运行了命令 git reset hard
  • 使用 python 读取 MS Word 文件中的自定义文档属性

    如何使用 python 获取 MS Word 2010 文档的文档属性 对于文档属性 我指的是那些可以在文件 gt 信息 gt 属性 gt 高级属性下添加或修改的属性 在 MS WORD 2010 中 我在 windows764bit 上使
  • C++编译器允许循环定义吗?

    当我为树编写一些代码时犯了一个错误时 我遇到了以下奇怪的情况 我已经对这个示例进行了很多精简 因此它只是一个线性树 基本上 在 main 函数中 我想将一个节点附加到我的树上 但我没有将其附加到 tree root 而是仅将其附加到 roo
  • 接受语言列表

    我想对浏览器发送到网站的 Accept Language 做出反应 有谁知道我可以在哪里获得浏览器可能发送到网站的所有可用 Accept Languages 的可靠列表 非常感谢 IANA 语言子标签注册表页面 http www iana
  • OpenGL:缩放然后翻译?如何?

    我有一些二维几何 我想在我的几何体周围获取一些边界矩形 然后在平面上的其他地方渲染它的较小版本 以下或多或少是我必须进行缩放和翻译的代码 source and dest are arbitrary rectangles float scal
  • 如何创建嵌套数组并将其存储在数据库中? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个像这样的数据 table tr th title 1 th td para1 td tr table table tr th tit
  • ARM 模板:AppSettings、WEBSITE_CONTENTSHARE 的存储端点不正确

    使用 ARM 模板将 Azure 函数部署到 USGov Arizona 时出现错误 模板适用于 Azure 商业版 错误是 12 34 11 12 33 27 PM Resource Microsoft Web sites config
  • 隐式声明scandir; alphasort 未声明

    我正在尝试使用scandir打印当前目录中的文件列表 当我尝试编译时 我收到以下错误和警告 warning implicit declaration of function scandir Wimplicit function declar