gpt4 book ai didi

c - 如何在没有警告的情况下在c99中使用ftruncate

转载 作者:太空狗 更新时间:2023-10-29 15:19:35 26 4
gpt4 key购买 nike

我想在我的代码中使用 ftruncate 函数。我必须使用选项 std=c99 进行编译。我收到警告:

In function ‘test’:
warning: implicit declaration of function ‘ftruncate’ [-Wimplicit-function-declaration]

我试图在互联网上找到任何可以解决这个问题的解决方案,但我没有成功。

我使用 ftrucnate 是因为我想在锁定 (flock) 后清除已打开文件的内容。

最佳答案

由于 ftruncate() 不是标准的 C 函数,并且您要求执行标准,因此您需要定义适当的功能测试宏(参见 feature_test_macros(7))。

来自 ftruncate(2) 联机帮助页:

   ftruncate():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* Since glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L

换句话说,要公开 ftruncate() 函数,您必须定义这些宏之一,例如:

gcc -c -std=c99 -D_XOPEN_SOURCE=500 myfile.c

关于c - 如何在没有警告的情况下在c99中使用ftruncate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com