1.进程间通信的方法
命名管道、socket、信号量、fifo、共享内存。
2.进程:一个正在运行的程序,是系统分配资源的最小单位
线程:是一种轻量级的进程,它没有系统资源,是系统调度的最小单位,一个进程是由一个或多个线程组成的,在一个进程的内部,多个线程的资源是共享的。
进程和线程的区别
资源分配不同:进程拥有独立的内存和系统资源,而在一个进程的内部,线程之间的资源是共享的,系统不会为线程分配系统资源。
工作效率不同:进程切换时需要保留占用的系统资源,而线程的切换不需要保留系统资源,提高了数据处理的并发能力。
执行方式不同:线程有程序运行的入口地址,但是线程不同独立运行,由于线程不占用系统资源,所以线程必须存在于进程中,进程可以被操作系统直接调度,不同进程之间的线程资源是不能共享的。
3.gdb调试
在编译的时候加入调试信息
gcc -g test.c -o test
然后使用gdb调试
gdb test
list:列出代码
run:运行程序
n :单条语句执行
continue(c):继续执行
break 5:在第五行加入一个断点
break function1:在函数function1处添加一个断点
info b:查看断点信息
p i:打印i的值
bt:打印堆栈信息
4.查看汇编代码
首先加入调试信息
gcc -g test.x -o test
然后使用objdump 查看汇编代码
objdump -S test
5.secureCRT不能输入,检查是否去掉了连接配置的RTS/CTS选项
6.pc和虚拟机设置共享目录后,在/mnt/hgfs/下查看共享文件。
7.pc上修复u盘:chkdsk H:/f
H为upan盘符,当系统不能识别时,可到手机设置里格式化下
8.linux里大文件的分割
比如把10G的file.tar.gz分割为10个1G的小文件
split -b 1G file.tar.gz new-file.tar.gz.
-b 指定分割大小,K、M、G为单位
file.tar.gz 要分割的文件
new-file.tar.gz. 分割后的文件(注意有个点“.”),如不指定该项,默认以aa,ab,ac命名分割文件
分割文件的解压
首先使用cat命令把分割文件合成一个大文件:cat new-file.tar.gz.* > big-file.tar.gz
然后使用tar 命令解压
如果是压缩和分割一起进行,可以通过管道“|”
tar -czvf - file | split -b 1G - new-file.tar.gz.
注意中间有两个“-”
file是要压缩的为文件。