#b计算机基础/e_语言/python/语法
2019年12月23日 下午8:58
python修改linux日志(logtamper.py) - 轻轻的烟雾 - 博客园
使用方法,总结在另一篇文章中: logtamper使用
在logtemper的源码中,我们会看到:
1 | LAST_STRUCT = ‘I32s256s' |
- 我这里就来解释struct是什么?
- python中struct 模块用于python数据结构与C结构之间的相互转换
- 那么我们就需要学习一下c语言中的struct
- C语言字节对齐问题详解 - clover_toeic - 博客园这篇文章讲解的十分全面
- 以及‘I32s256s’ ‘hi32s4s32s256shhiii4i20x’定义的是什么?
- 他们是:自定义的格式化字节的规则
- 这里有一个对应表:struct 模块详解
- I32s256s:对应的结构体是:
- I => (unsigned int) =>4 =>timestamp
- 32s => char[] => 32*1 => ttyname
- 256s => char[] => 256*1 => hostname
- hi32s4s32s256shhiii4i20x对应的结构体:
- h => short => 2
- i => int => 4
- 32s => char[] => 32*1
- 4s => char[] => 4*1
- 32s => char[] => 32*1 => username
- 256s => char[] => 256*1 => hostname
- h => short => 2
- h => short => 2
- i => int => 4 =
- i => int => 4 =
- i => int => 4 =
- 4i => int => 4 * 4 =
- 20x => pad byte => 0 => no value
- 注:代码只使用了5,6对应的username和hostname