随笔分类 -  Unix

摘要:一段shell脚本,放在linux中运行,会自动枚举/bin、/usr/bin等目录下的所有可执行文件,然后查找man生成html的说明文档。生成的文档包中index.html是目录。这包文档可以用在无man而又想使用unix tools的时候,如在windows下玩grep。#! /bin/bashhelpDir=man_pagesmain_file=./$helpDir/index.htmlcmds=`{ for j in ${PATH//:/ } do ls $j done} | sort | uniq `rm -f -r $helpDirmkdir $h... 阅读全文
posted @ 2012-01-02 01:08 Scan. 阅读(887) 评论(5) 推荐(1)
摘要:对应于Windows下的interlocked系列:type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type __sync_fetch_and_or (type *ptr, type value, ...)type __sync_fetch_and_and (type *ptr, type value, ...)type __sync_fetch_and_xor (type *ptr, type value, ...)type 阅读全文
posted @ 2011-12-21 20:39 Scan. 阅读(771) 评论(0) 推荐(0)
摘要:我在这里记录一下对GNU make处理makefile这个过程的思考: 1. 执行make命令后,GNU make扫描整个makefile,将其中出现的变量赋值和目标依赖关系记录到数据库(就是make解析makefile得到的所有数据集合,用make -p查看)中,其中每个变量记录变量名及其字面值(用$(value)可以查看,即如myVar = $(CFLAG)的字面值就是$(CFLAG),暂不进行展开)。这个过程中对$所标记的变量或函数不进行任何展开,除非遇到几种特殊情况(后文提到)。 2.扫描整个数据库,展开所有$引导的变量和函数(这里至少有两趟扫描,首先会扫描$(value)调用... 阅读全文
posted @ 2011-12-04 23:55 Scan. 阅读(570) 评论(0) 推荐(0)
摘要:想在当前目录及子目录的.cpp文件中搜索关键字char,键入:grep -R char *.cpp失败。找了很久原因,发现这样一个事实:-R选项的确会进入子目录递归匹配,但前提是,子目录名称也必须满足*.cpp的命名规则,也就是说,对于如下目录层次应用上面的命令:./1.cpp./2.cpp./dir.cpp/3.cpp./dir/4.cpp其中./dir/4.cpp由于目录名称不满足*.cpp的命名规则,4.cpp这个文件是不会参与匹配的...正确的方案得引入管道:find -type f -name *.cpp | xargs grep char由于我自己的应用场合不太适合管道,最终降低要 阅读全文
posted @ 2011-11-28 20:47 Scan. 阅读(2212) 评论(0) 推荐(0)