Open函数的问题(100分)
char file[256], buf[1024];
//输入欲传输的文件路经
printf( "请输入欲传输的文件路经:%s ", file);
if ((source=open(file, O_RDONLY))==-1) {
perror( "源文件打开出错 ");
exit(1);
}
在运行的过程中,输入文件完成路经后,显示:
bash: /home/root/Workspace/test/test.txt: 权限不够
我就是以root身份运行的,怎么办?
------解决方案--------------------不因该阿,你用的什么系统?
------解决方案--------------------ubuntu?试试看
cd /home/root/Workspace/test/
chmod 755 test.txt
看看行不行
------解决方案--------------------perror( "源文件打开出错 ");
bash: /home/root/Workspace/test/test.txt: 权限不够
出错的地方是bash,而不是你的open
------解决方案--------------------把file也输出一下,
检查看一下文件权限
------解决方案--------------------像是程序没有执行权限?
------解决方案--------------------如果程序真是以root用户运行的应该不存在权限的问题,就是把文件的读写权限都去掉,root用户照样该读
读该写写.不受影响.
但是我们在这里所说的root用户一般就是用户号为0的用户,但是有可能被人为的改变,比如删除root后再添加
root,有可能用户号已经不是0了,这些的话,虽然是root用户,已经不是真正的超级用户了.这就存在权限的问题了.