最近在某个公用集群上手工编译了 htop 给小伙伴们用. 然后发现大家的用户名都是学号, htop 并不能把用户名显示全, 于是追责麻烦. 然而 htop 似乎并不支持改列宽, 于是就自己去看代码改列宽了.
以下基于 htop 的 2.2.0 release 版本.
表项的宽度在 Process.c
里的 474
行. 这玩意是 hard coded 的 sprintf 的位宽.
表头在 linux/LinuxProcess.c
里的 205
行, 修改方法是在 title="USER "
后面再加几个空格. (hard coding 真是让人崩溃啊)
然后可能会编译的时候说 struct Process has no member isKernelThread
. 修的方法是在这个 c 文件的 146
行加括号. 注意不能改 .h
文件, 因为 .h
是在 make 的时候从 c 代码里抽取出来生成的 (什么鬼玩意)