首页 技术 正文
技术 2022年11月23日
0 收藏 899 点赞 3,086 浏览 1296 个字

以前我用strings命令的频率不高, 现在越用越顺手, 而且已经是离不开strings命令了。虽然以前说过strings命令, 但今天还是要说。 主要是两大用途, 下面来说明一下:

一. 确认代码编是否译到库中去了?

在大型的开发中, 我们经常修改一两行代码, 有时候自己修改的代码并没有编到库中去(有可能是代码没有同步到linux上编译, 也有可能是有编译错误导致生成库失败, 也有肯能是该make clean的地方没有make clean或rm库, 还有可能是其他杂七杂八的原因), 这样会经常误导自己的判断, 折腾大半天。

还有, 比如你代码提交了, 结果你的同事更新(svn up)了代码(也就是获取了你的代码), 但编译的时候由于各种原因没有把你的代码编译进去, 然后他提交了这个库, 然后呢, 自然就出了问题, 老板找到你的头上。 此时, 可以用strings命令快速判断提交的库中是否包含你自己的代码。 我用过无数次, 屡试不爽。 说了这么多, 下面来实战一下:

  1.  [taoge@localhost test]$ ls
  2.  test.c
  3.  [taoge@localhost test]$ cat test.c
  4.  #include <stdio.h>
  5.   
  6.  int main()
  7.  {
  8.  int a = 1;
  9.  int b = 2;
  10.  int c = a + b;
  11.  printf(“xxx, %d, %d, %d\n”, a, b, c);
  12.  
  13.  
  14.  return 0;
  15.  }
  16.  [taoge@localhost test]$ gcc test.c
  17.  [taoge@localhost test]$ ls
  18.  a.out test.c
  19.  [taoge@localhost test]$ strings a.out | grep xxx
  20.  xxx, %d, %d, %d
  21.  [taoge@localhost test]$

如上, 一般都是在自己写的代码中, 加点日志(字符串), 相当于打点tag, 然后用strings命令进行判断。 如果是不需要加日志, 那怎么办呢? 我经常是对文件中的之前日志中的字符串做简要修改, 比如加上xxx, 实际上也相当于打下自己的tag印记。

二. 对于新手来说, 需要知道新生成的代码进入了哪个库, 然后才好找库啊!

这个需求也很合理, 不能说代码编译到哪个库中去了, 你还不知道。 用strings命令吧, 如下:

  1.  [taoge@localhost test]$ find -name “*” | xargs strings -f | grep xxx
  2.  ./test.c: printf(“xxx, %d, %d, %d\n”, a, b, c);
  3.  ./a.out: xxx, %d, %d, %d
  4.  [taoge@localhost test]$

OK,  一目了然, 知道xxx编译到哪里去了。要补充一下, find命令中的双引号不能少, 否则:

  1.  [taoge@localhost test]$ find -name *
  2.  find: paths must precede expression: test.c
  3.  Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
  4.  [taoge@localhost test]$
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896