我有: 现在如果不是input
in sys_open()
,如果我要传递 a.txt,它可以工作。但我需要获取命令行的用户名,因此我必须将其复制到input
. 当我传递我的指针变量时,它不起作用。为什么?
int main()
{
char *name;
char input[1024];
strcpy(input, argv[1]);
name = input;
sys_open(input, "O_RDWR", 00700);
}
的标志open
(我不确定您为什么将其称为sys_open
)作为符号常量而不是字符串传递。
open(input, O_RDWR, 00777);
您几乎肯定需要在某处分配返回值来做任何有用的事情。
你可以试试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;
}