linux查看库是多少位的
linux查看哪个进程产生的文件夹?
linux查看哪个进程产生的文件夹?
可以使用ps -fe|grep filename,也可以使用fuser filename查看 只查看该进程:
ps -ef | grep 11345 查看该进程打开的文件:lsof -p 11345 查看内存分配:lcat /proc/11345/maps 查看堆栈:pstack 11345 查看发出的系统调用:strace -p 11345 查看调用库函数:ltrace -p 11345 11345是进程号
linux标准库是动态还是静态?
编译器的默认设置是连接动态库,这就要求在程序执行的时候需要的动态库必须存在。改变编译选项可以变为静态连接,这样生成的程序运行时不需要库的支持,但是文件的尺寸一般较大。
linx的C标准库都有,看你自己喜欢哪样用哪样。
当要使用静态的程序库时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功,静态程序库也就不再需要了。
然而,对动态库而言,就不是这样。动态库会在执行程序内留下一个标记指明当程序执行时,首先必须载入这个库。由于动态库节省空间,linux下进行连接的缺省操作是首先连接动态库,也就是说,如果同时存在静态和动态库,不特别指定的话,将与动态库相连接。
linux里面查看一个可执行文件使用了哪些头文件?
1)
C库这种东西,有标准,但没有官方实现,谁想自己写一个都行。当然常用的就那么几个,vc的和msvcrxx.dll,linux上么,glibc吧。另外也有μclibc之类的。
2)
.h是头文件,库文件么,.lib和.a是静态库,.dll和.so是动态库。#include就是让预编译器找到某个文件(一般是头文件),把里面的内容原封不动地放到#include的位置上。你要愿意,也可以把什么都写进头文件里,对编译器来说,这相当于把一切都写进了一个源程序文件。反正写个小程序这么搞没啥问题 。
3)
就是这样的。而且其中的依赖关系越来越微妙。
4)
程序算法 数据结构 程序设计方法 语言工具和环境
这是谭浩强说的。不过这个人的名声……