linux初探

首页

应用服务器

Linux技巧

中文文档

Linux初级

服务器源代码

命令详解

Linux技术应用

Linux安全应用

Linux业界新闻

UniX技术文章

Linux编程与内核

Linux数据库

Linux服务器

Linux安装指导

Linux论坛


首页>>Linux技术应用>>

热门文章

·在用Xconfigurator配置显卡时
·教你一招 提高Linux操作系统
·98下不会安装驱动,请各位老
·请教主名字服务器设备
·Linux应用问答系列之网络FAQ
·debian下关于中文粗体
·红旗Linux桌面版5.0下载及安
·Linux办公一条龙之组件间的调
·Linux办公一条龙之扫描打印篇
·Linux办公一条龙之绘图软件D

推荐文章

UNIX痛恨者手册:cpp预处理删文件机制

    写一个程序, 例如a.c, 里边用了宏, 宏在别的目录下的头文件中定义, 用-I指定。


    调试时, 发现宏替换存在问题, 于是用cpp查看预处理输出, cpp也接受-I选项, 就象gcc一样。 于是, 故事开始了:


    1, cpp -I ……/headers/ a.c问题是, 我一下子忘了敲那个-I选项了!! 于是事实上的命令就是这样:cpp ……/headers/ a.c输出:cc1: error: headers/: 没有那个文件或目录


    2, 我马上意识到自己的错误操作, 更正为:cpp -I ……/headers/ a.c输出:[root@localhost ~]# cpp -I ……/headers/ a.c cpp: a.c:没有那个文件或目录cpp: 没有输入文件


    嗯? a.c也不见了? 不可能啊。 ls一下, 嘿, 还真的不见了! 百思不得其解, 用strace跟踪一下cpp ……/headers/ a.c,看看它都干了些什么:


    3, strace cpp ……/headers/ a.c最后几行的输出:


    QUOTE:vfork()                                 = 4450 waitpid(4450, cc1: error: headers/: 没有那个文件或目录[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0) = 4450―― SIGCHLD (Child exited) @ 0 (0) ――stat64("a.c", {st_mode=S_IFREG|0644, st_size=0, ……}) = 0 unlink("a.c")                           = 0 exit_group(1)                           = ?    CODE:NAME cpp - The C Preprocessor


    SYNOPSIS cpp [-Dmacro[=defn]……] [-Umacro] [-Idir……] [-Wwarn……] [-M│-MM] [-MG] [-MF filename] [-MP] [-MQ target……] [-MT target……] [-P] [-fno-working-directory] [-x language] [-std=standard] infile outfile


    Only the most useful options are listed here; see below for the remain- der.如果你不输入 -I 的话,那么第一个参数 ……/headers/ 是输入文件,第二个参数 a.c 是输出文件。


    这样你的文件就会被删除。


    和 gcc -o ttt.c ttt 的原理一样,请看“UNIX 痛恨者手册”,类似的还有


    CODE:rm *.o因为 * 号需要按 shift 键,所以如果你的手指不太协调或者键盘不太灵光的话,按后面的小数点的时候,也许 shift 还没有松开,于是就变成了


    CODE:rm *>o恭喜你!


    UNIX 将删除你所有的文件,并且为你生成一个名为 o 的空文件。





相关文章:

·FreeBSD平台下Web服务器架设攻略
·FreeBSD平台下FTP服务架设全程指南
·高手晋级之网络过载攻击完全解析
·SCOTCP/IP网络管理---守护进程inetd
·UNIX系统被删文件的恢复策略分析
·排除Win XP局域网访问故障
·获得RHCE后的职场优势
·世界4个头号Linux认证浅析---解除你的迷惑
·Unix启动故障的紧急诊断与处理
·Unix下添加新硬盘方法

Copyright@2005 www.linuxGoo.com All Right Reserved