日期:2014-05-16  浏览次数:20706 次

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用户,已经不是真正的超级用户了.这就存在权限的问题了.