尝试使用Open Function调用时出现错误消息

时间:2019-09-12 19:38:35

标签: 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);
                                                                              ^
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编程的新手,所以我仅限于可以通过Google搜索找到的内容,没有任何帮助。相反,在O_CREAT中,我确实尝试仅使用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);

}

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

1 个答案:

答案 0 :(得分:0)

尝试包括

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

要打印名称,您可以尝试:

printf("%s\n", "My Name");