liunx 部分
core 是 unix 系统的内核。当你的程序出现内存越界的时候,操作系统会中止你的进程,并将当前内存状态倒出到 core 文件中,以便进一步分析。程序员可以通过 core 文件来找出问题所在。它记录了程序挂掉时详细的状态描述。
什么是 core dump Core 的意思是内存, Dump 的意思是扔出来, 堆出来。开发和使用 Unix 程序时, 有时程序莫名其妙的 down 了, 却没有任何的提示 (有时候会提示 core dumped). 这时候可以查看一下有没有形如 core. 进程号的文件生成, 这个文件便是操作系统把程序 down 掉时的内存内容扔出来生成的,它可以做为调试程序的参考. core dump 又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个 core 文件中, 叫 core dump。如何使用 core 文件 gdb -c core 文件路径 [应用程序的路径],进去后输入 where 回车, 就可以显示程序在哪一行当掉的, 在哪个函数中.
为什么没有 core 文件生成呢? core 文件的生成跟你当前系统的环境设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成 core 文件.
ulimit -c unlimited core 文件生成的位置一般于运行程序的路径相同, 文件名一般为 core. 进程号
不用 core 文件,程序出了问题产生信号是否知道?答:内核向进程发信号嘛。
共享内存对象映射。
二者有什么区别:
区别:内存映射文件是由一个文件到一块内存的映射,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问,因此内存文件映射非常适合于用来管理大文件。
3、请解释下列 10 个 shell 命令的用途
top、ps、mv、find、df、cat、chmod、chgrp、grep、wc
cat:把一个或多个文件内容显示到标准输出
chmod:改变文件属性
chgrp:改变用户分组
grep:在文件内进行搜索
wc:命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
-rw-r--r-- 那个是权限符号,总共是 - --- --- --- 这几个位。
第一个短横处是文件类型识别符:- 表示普通文件;c 表示字符设备(character);b 表示块设备(block);d 表示目录 (directory);l 表示链接文件(link);后面第一个三个连续的短横是用户权限位(User),第二个三个连续短横是组权限位 (Group),第三个三个连续短横是其他权限位(Other)。每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。如果每个权限位都 有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是 - --- --- ---。
权限的设定可以用 chmod 命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:
一个文件 aaa 具有完全空的权限 - --- --- ---。
chmod u+rw aaa(给用户权限位设置读写权限,其权限表示为:- rw- --- ---)
chmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)
chmod ugo+rw aaa(给用户,组,其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)
如果 aaa 具有满权限 - rwx rwx rwx。
chmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)
如果要给 aaa 赋予制定权限 - rwx r-x r-x,命令为:
chmod u=rwx,go=rx aaa