error: /usr/include/stdio.h: Permission denied 的一种情况分析
2015-09-04 12:35
302 查看
error: /usr/include/stdio.h: Permission denied 的一种情况分析
尝试着解决问题
分析
我不明白,打开/usr/include/stdio.h 和其他文件夹的可执行权限有什么相关,因为/usr/include和/usr/include/stdio.h 都具有可行性,用户应该可以读取stdio.h文件才对啊。
这个情况出现在移植的过程中,为了防止不必要的麻烦,添加如下命令,chmod -R 755 /usr/include/
代码:
#include <stdio.h>
int main(){
printf ("hello long size %d\n",sizeof(long));
}
很简单,测试是否能够编译通过
对比
在root的用户下编译正常通过
在其他用户测试不通过
点击(此处)折叠或打开
~> gcc test.c
test.c:1:19: error: /usr/include/stdio.h: Permission denied
test.c: In function 'main':
test.c:5: warning: incompatible implicit declaration of built-in function 'printf'
#include <stdio.h>
int main(){
printf ("hello long size %d\n",sizeof(long));
}
很简单,测试是否能够编译通过
对比
在root的用户下编译正常通过
在其他用户测试不通过
点击(此处)折叠或打开
~> gcc test.c
test.c:1:19: error: /usr/include/stdio.h: Permission denied
test.c: In function 'main':
test.c:5: warning: incompatible implicit declaration of built-in function 'printf'
尝试着解决问题
提示说是权限受限。
在root用户下看看stdio.h的属性
点击(此处)折叠或打开
ll /usr/include/stdio.h
-rw-r--r-- 1 root root 31144 2010-05-06 10:33 /usr/include/stdio.h
具有可读属性,但是用vim打开,显示是个 [new file], 为什么呢?
具有可读权限就是看不到文件!
给文档添加可执行权限,chmod +x /usr/include/stdio.h
问题如故
给link添加可执行权限,# find /usr/include/ -type l -exec ls -l {} \;
问题如故
去除link的可执行权限,# find /usr/include/ -type l -exec chmod -x {} \;
给文件夹添加可执行权限,# find /usr/include/ -type d -exec chmod +x {} \;
问题解决
在root用户下看看stdio.h的属性
点击(此处)折叠或打开
ll /usr/include/stdio.h
-rw-r--r-- 1 root root 31144 2010-05-06 10:33 /usr/include/stdio.h
具有可读属性,但是用vim打开,显示是个 [new file], 为什么呢?
具有可读权限就是看不到文件!
给文档添加可执行权限,chmod +x /usr/include/stdio.h
问题如故
给link添加可执行权限,# find /usr/include/ -type l -exec ls -l {} \;
问题如故
去除link的可执行权限,# find /usr/include/ -type l -exec chmod -x {} \;
给文件夹添加可执行权限,# find /usr/include/ -type d -exec chmod +x {} \;
问题解决
分析
我不明白,打开/usr/include/stdio.h 和其他文件夹的可执行权限有什么相关,因为/usr/include和/usr/include/stdio.h 都具有可行性,用户应该可以读取stdio.h文件才对啊。
这个情况出现在移植的过程中,为了防止不必要的麻烦,添加如下命令,chmod -R 755 /usr/include/
相关文章推荐
- gcc -D 传值给代码,默认值为1
- linux内核编译环境配置
- Eclipse 开发利器 Jrebel热部署配置 基于Jetty
- MvvmLight(三)命名绑定Command
- 开源免费跨平台opengl opencv webgl gtk blender, opengl贴图程序
- expect 参数处理之一
- 几款屏幕录制软件 ActivePresente
- error: /usr/include/stdio.h: Permission denied 的一种情况分析
- gcc -D 传值给代码,默认值为1
- linux内核编译环境配置
- 一种不能删除文件的情况分析过程
- 内核编程实例,多文件的Makefile
- c 有意思的数组初始化
- C 文件直接包含
- [面试技巧]16个经典面试问题回答思路
- 一种不能删除文件的情况分析过程
- 内核编程实例,多文件的Makefile
- c 有意思的数组初始化
- C 文件直接包含
- [面试技巧]16个经典面试问题回答思路