一些总结
来源:互联网 发布:阿里云学生服务器配置 编辑:程序博客网 时间:2024/04/29 19:35
1函数使用缺省参数时,要么在声明时使用,要么在实现时使用,不能在两个地方都使用。
2 当文件从实体机移动到虚拟机上,如果虚拟机上时钟比实体机上时钟小,则执行makefile会报clock时钟错误,修改虚拟机时间和实体机一致则可解决问题。
3 当使用多任务调用同一个函数时,如果函数为不可重入函数,则在中断时会破坏该函数数据,常见为以下三种情况:
1)函数体内使用了静态数据结构
2)函数体内调用了malloc或free函数
3)函数体内调用了标准I/O函数
总结一句话:就是要保证中断是安全的
4 使用fets或gzgets之类的函数,如果缓冲区不够大,没有读完一行的话,下一次读取不是在下一行开始,而是从上次 读取的下一个位置开始,即文件指针指向的地方。
5 stdio.h中有一个宏叫FILENAME_MAX表示编译器所支持的最大长度的合法文件名,LINUX下为4096
6 含有string类型的结构体不能使用malloc,遇到这种情况应该用new分配内存,同样含有stl容器时也是这样
7 如果打开文件没关闭,文件很多的话会造成too many open files错误,导致你文件不能打开了。
可以用lsof查看打开的文件数,lsof -p pid可以查看某个进程打开的文件
ulimit -n可以查看单个进程最多可以打开的文件数,可以修改这个值,不过终端重启后又会恢复,彻底修改需要改配置文件。
8 last|more 命令可以查看机器最近一次重启以来所有的IP登陆信息。
9 用backtrace可以打印段错时堆栈信息,用backtrace_symbols打印调用关系,可以用prctl函数生成core dump文件,
来查看这些信息,不过第一个参数要设成PR_SET_DUMPABLE,另外prctl函数可以对线程取名。
可以用 ps -L -p 进程号查看进程下所有线程的信息 。
10 在对SIGINT,SIGTERM,SIGSEGV这些信号进行重新处理时,最好用sigaction函数取代signal函数。
11 使用inet_ntoa函数时,由于该函数返回的是一个静态指针,如果前后两次调用,后面使用的会覆盖前面的结果出现这种情况,需要前一次的IP字符串拷贝一份出来。
12 strtok函数内部使用一个静态指针来记录分割字符串的位置,是线程不安全的,建议使用安全的strtok_r函数。
13 mysql一些常用操作:
1) 查看当前任务列表:show processlist;
2) 将查询结果导入到磁盘文件:select xxx from xxx into outfile 'filename'
3) 将磁盘文件内容插入数据库:load data infile ‘filename’ into table xxx
4) mysql表结构导出:mysqldump -uroot -ppasswd xxx --no-data > /home/xxx.sql
5) 备份整个数据库:mysqldump -uroot -ppasswd 库名 > /home/xxx.sql
6) mysql下查看事务是否开启:show variables like 'AUTOCOMMIT'
7) 在innoDB引擎下,显式使用事务:SET AUTOCOMMIT=0;
BEGIN; SQL; COMMIT/ROLLBACK
8) 当磁盘空间满了时,mysql会启动不了,一直停在starting mysql ...界面;
可用df -h查看磁盘所剩空间
14 vim在命令环境下,使用%!xxd可以将ASCII码转换为十六进制,使用vimdiff可以比较两个文件的不同。
15 shell中进行浮点数运算:
a=1;
b=0.12;
a=$a+$b;
echo "$a" | bc -l;
对于无限小数,可以用scale=n指定小数位,如 echo "scale=2; 5/3"|bc -l
16 传入一个命令给数组
cc=(`ls -l | awk '{print $9}'`);
echo "${cc[@]}";
17 在为http header头增加字段时,每增加一个后面要加上\r\n,最后多一个\r\n才表示header头结束
18 tcpdump -i eth0 -s 2048 -l -A dst www.qq.com查看完整报文
19 linux下补丁文件的制作方法:
diff -uN file1 file2 > file1.patch :比较两个文件的不同,将不同之处输出到补丁文件,-表示旧,+表示新
选项-u表示统一格式创建补丁文件,这种格式比缺省格式更紧凑些
选项-N确保补丁文件将正确地处理已经创建或删除文件的情况
其他选项可以查看man手册
20 connect系统调用如果被中断返回EINTR错误,不能再次重启,否则返回一个错误,必须调用select等待连接完成。
先就总结到这里,以后再续。。。
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- 一些总结
- shell-extension
- Visio文件转EPS文件
- 利用AWT编写一个简易计算器
- VC屏幕截图(将屏幕指定区域存成图片)
- POJ 1061
- 一些总结
- Linux系统虚拟内存空间一般布局示意图
- Hibernate学习笔记(五)【映射组成关系】
- 拷贝机器码的一种inline hook方式
- 在ExtJS的ComboBox组件中实现下拉树效果
- 汇编 溢出 解析
- 求1000以内的偶数和(3)
- 又一个特殊的日子
- 仿QQ表情的设计