源码控制工具

来源:互联网 发布:网络推手陈默 编辑:程序博客网 时间:2024/06/16 22:55

CVS,SVN,Git

Git使用多个分布式存储库,基于改变集进行历史跟踪。

步骤:安装,建立Git存储库,向库中添加内容,操作库中文件,合并,其他。

GNU/Linux环境编程一书

 

 

Gnuplot古老但流行的可视化程序,可与Ruby,Python,Smalltalk绑定。

 

 

pause会把进程挂起,直到接收到信号。返回继续运行。

kill向一个或多个进程发送信号。

raise可以向当前进程发出一个特殊的信号。

alarm函数在预先设定的时间长度到达后发出一个SIGALRM信号。

sigaction是signal的改进版,也是POSIX的。

top和ps(-a列出所有)有关,top是实时的。

 

线程创建,推出,管理(pthread_self取得线程描述符句柄),同步(pthread_join让线程创建者等待这个线程的结束),线程互斥(pthread_mutex)线程条件变量(pthread_cond允许一个线程基于条件唤醒另一个线程)。

构建使用线程的应用程序:

gcc -pthread threadapp.c -o threadapp -lpthread (-pthread选项为程序提供了多线程支持,如重入性等)

 

用户空间,进程间通信:

消息队列,信号量,共享内存等。

 

高级文件操作:文件类型属性,遍历,映射,事件,缓冲传输。

glob正则表达式。

使用inotify进行文件系统事件通知。

 

getopt和getopt_long解析命令行选项

时间换算函数

sysinfo收集系统层次信息,如负载,存储容量等。

mmap映射物理内存,把文件内容映射到用户程序空间。

锁定解锁内存页面(用于提高程序性能,使所使用的页面不被交换出去)

错误报告

 

调试开始时,必须先载入要进行调试的程序,可以用以下两种方式:
 * 在启动gdb后执行以下命令:
   file 可执行文件路径
 * 在gdb启动时就载入程序:
   gdb 可执行文件路径

list :显示程序中的代码

forward/search :从当前行向后查找匹配某个字符串的程序行

reverse-search :和forward/search相反,向前查找字符串

break 要设置断点的行号

tbreak :设置临时断点,在设置之后只起作用一次。

clear :和break相反,clear用于清除断点。

run :启动程序,在run后面带上参数可以传递给正在调试的程序

awatch :用来增加一个观察点(add watch),使用格式:awatch 变量或表达式。当表达式的值发生改变或表达式的值被读取时,程序就会停止运行。

watch :与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行。

commands :设置在遇到断点后执行特定的指令。‘

delete :清除断点或自动显示的表达式

disable :让指定断点失效。

enable :和disable相反,恢复失效的断点。

ignore :忽略断点。

condition :设置断点在一定条件下才能生效。

cont/continue :使程序在暂停在断点之后继续运行。

jump :让程序跳到指定行开始调试。

next :继续执行语句,但是跳过子程序的调用。‘

nexti :单步执行语句,但和next不同的是,它会跟踪到子程序的内部,但不打印出子程序内部的语句。

step :与next类似,但是它会跟踪到子程序的内部,而且会显示子程序内部的执行情况。

whatis :显示某个变量或表达式的数据类型。

ptype :和whatis类似,用于显示数据类型,但是它还可以显示typedef定义的类型等。

set :设置程序中变量的值。set 变量=表达式        set 变量:=表达式
display :增加要显示值的表达式。info display :显示当前所有的要显示值的表达式。
print :打印变量或表达式的值。

backtrace :打印指定个数的栈帧(stack frame)。

frame :打印栈帧。info frame :显示当前栈帧的详细信息。

quit :退出gdb。

kill :结束当前程序的调试。

 

子进程,父进程关系:

子进程在自己的虚拟地址空间中执行,空间包括栈、堆和数据空间 。