c open()函数不起作用

时间:2018-04-14 08:25:56

标签: c visual-studio

所以我正在尝试编写这个函数,该函数获取一个参数,告诉它是显示屏幕输入还是将其重定向到某个文件。 我是通过重定向stdout部分来做到的。 由于某种原因,open()函数中的标志无法识别,即使我根据需要进行了#include。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h> 
#include <fcntl.h>   
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

#define TRUE 1
#define FALSE 0
void writer(char* fileName);
void writerEmpty();

void writer(char* fileName)
{
    char buffer[64];
    int size = 64;
    int fd;
    read(0, buffer, size);
    if (!strcmp("std", fileName))
    {
        close(1);
        fd = open(fileName, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
    }
    write(1, buffer, size);
}

visual studio无法识别S_IRUSRS_IWUSR标志,当我根本不使用它们时,open()返回-1(错误)。 救命?有人在吗? :)

0 个答案:

没有答案