C 尝试使用打开函数调用时出现错误消息

C 尝试使用打开函数调用时出现错误消息,c,system-calls,xv6,C,System Calls,Xv6,作为我家庭作业的一部分,我需要为XV6创建一个小型c程序。这个程序必须创建一个文件,写入它,然后关闭它 当我尝试用我的文件编译xv6时,我收到两条错误消息 HWC2.c:13:82: error: ‘O_CREAT’ undeclared (first use in this function) fd = open("/home/kyle/Desktop/Projects/'Assignment 2'/xv6/Tom.txt", O_RDWR | O_CREAT);

作为我家庭作业的一部分,我需要为XV6创建一个小型c程序。这个程序必须创建一个文件,写入它,然后关闭它

当我尝试用我的文件编译xv6时,我收到两条错误消息

HWC2.c:13:82: error: ‘O_CREAT’ undeclared (first use in this function)
 fd = open("/home/kyle/Desktop/Projects/'Assignment 2'/xv6/Tom.txt", O_RDWR | O_CREAT);
                                                                              ^
HWC2.c:13:14: error: called object ‘open’ is not a function or function pointer
 fd = open("/home/kyle/Desktop/Projects/'Assignment 2'/xv6/Tom.txt", O_RDWR | O_CREAT);
我是C语言编程新手,所以我只能在谷歌搜索中找到我能找到的东西,没有任何帮助。取而代之的是,我没有尝试使用write来创建

#include "types.h"
#include "stat.h"
#include "user.h"

int open;
int fd;

int main (void)
{

    printf(1,"My Name\n");
    fd = open("/home/kyle/Desktop/Projects/Assignment 2/xv6/Tom.txt", O_RDWR | O_CREAT);

    write(fd, "1 2 3 4", 7);
    close(fd);

}
我需要它来编译、打印我的名字、创建文件、写入文件,然后保存并关闭文件

#include <fcntl.h>
#include <stdio.h>

您忘记了
#包括“fcntl.h”
。在这个文件中,它是
O_CREATE
而不是
O_CREATE
谢谢。我已经添加了它,并在编译过程中做了进一步的改进,但它在/usr/include/fcntl.h:25:0、HW2.c:4:/usr/include/features.h:424:25中包含的文件中的fcntl.h有问题:sys/cdefs.h:没有这样的文件或目录#include^编译已终止:目标“HW2.o”的配方生成失败:**[HW2.o]错误1我已检查sys文件夹,文件在那里。我不确定您是否获取了正确的头。看看fcntl.h info xv6 repo:它只有几行长。你的编译链是如何配置的?我已经把它修好了。谢谢你的帮助。我本来应该做你在fcntl.h发布和使用“”的事情。
printf("%s\n", "My Name");