1

我有: 现在如果不是inputin sys_open(),如果我要传递 a.txt,它可以工作。但我需要获取命令行的用户名,因此我必须将其复制到input. 当我传递我的指针变量时,它不起作用。为什么?

int main()
{
    char *name;

    char input[1024];
    strcpy(input, argv[1]);

    name = input;

    sys_open(input, "O_RDWR", 00700);

}
4

2 回答 2

3

的标志open(我不确定您为什么将其称为sys_open)作为符号常量而不是字符串传递。

open(input, O_RDWR, 00777);

您几乎肯定需要在某处分配返回值来做任何有用的事情。

于 2013-02-09T05:40:23.677 回答
1

你可以试试sys_open(input, O_RDWR, 00777);。我已按如下方式修改了此代码,它对我有用

#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
char *name;
int   fd;
int   data = 0;

char input[1024];
strcpy(input, argv[1]);

//name = input;
fd = open((const char *)(input), O_RDWR, 00700);
printf("file descriptor: %x\n", fd);

read(fd, &data, 2);
printf("Data: %d\n", data);

return 0;
}
于 2013-02-09T05:05:19.880 回答