tpa*_*r44 5 c linux glibc atomic unistd.h
我正在尝试使用 pread 和 pwrite 以便我可以查找文件的开头并在一个原子操作中开始读取或写入。然而,这两个函数都会为我做这件事,但我遇到的问题是,warning: implicit declaration of function ‘pread’即使在我添加#define _XOPEN_SOURCE 500并#include<unistd.h>像手册页所说的那样,编译器也会给我。我错过了什么吗?带有函数调用的两个语句如下。谢谢!
#include<unistd.h>
#define _XOPEN_SOURCE 500
int main (int argc, char *argv[])
{
while ( (read_in += pread(source_fd, in_buf, in_buf_size,read_in) ) )
{
if (write_out += pwrite(dest_fd, in_buf, read_in, write_out) == -1)
{
Run Code Online (Sandbox Code Playgroud)
您需要_XOPEN_SOURCE 500 在包含之前定义:
#define _XOPEN_SOURCE 500
#include<unistd.h>
Run Code Online (Sandbox Code Playgroud)
否则,unistd.h标头将看不到宏定义。