求一个linux下的C语言程序,可以将常用命令的帮助转化为txt文档。命令通过man命令查询

希望效果:系统执行man XXXXX,如果查不到,查下一条并保存,例如:man lr >>help.txt失败,执行man ls >>help.txt.首字母范围:a-z,命令长度:7位及以下。
顺便问一下:gcc -o a.txt a.c的-o是什么意思
说白了我想先查字典那样,用man查出命令的解释(它的最详细),希望lto51说一下程序编写思路。我安在虚拟机里的fedora 16,现在电源都启动不了,在windows环境下用tc出错。C盘装的东西太多怕改注册表改出问题来了。

执行man命令 查不到,执行一条命令并保存,要实现这个功能好像挺难的

gcc 编译器所需要的参数如下

-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
  -o output_filename,指定输出文件的名称为output_filename(可执行文件),同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
  -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
  -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
  -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
  -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶
  A)#include <myinc.h>
  B)#include “myinc.h”
  其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。

参考资料:百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-14
翻译一下你的问题的描述:找到/usr/bin/下的所有命令,然后逐个用Man命令查询,如果失败不保存结果,否则保存(保存的文件名应该和命令名相同吧),切命令的名字长度不超过7,首字母为a-z,不知道是不是这样,别人回答你的问题是为了帮助你,而不仅仅是让你采纳!追问

基本上是这样,但我想把这些命令的帮助合并,保存为txt文档。我现在想学校里的电脑上查(RedhatLinux5),但用manpath查到的三个结果,都是目录不好整理,我想要这个程序的源代码。另外我还想用这个程序在Fedora 16里查。

追答

#include
#include
#include
#include

int main()
{
FILE *fp;
int cnt =0;
size_t len = 0;
char *line = NULL;
char order[25];
char temp[7];
system("ls /usr/bin/ >test.txt");///usr/bin/可以换成/bin
fp = fopen("./test.txt","a+");
if(fp == NULL){
perror("fopen\n");
return -1;
}
while(getline(&line,&len,fp) !=-1){//每次读取一行
if(strlen(line) %s.txt",temp,temp);//格式化字符串
cnt = system(order);
if(cnt <0 || cnt ==256 || cnt ==4096){//如果失败将文件删除
bzero(order,25);
sprintf(order,"rm %s.txt",temp);
system(order);
}
}
}
}
return 0;
}
这会刚好不忙,给你写了代码,不知道是不是你想要的,gcc man.c -o man--./man--rm *.txt,程序在ubuntu11.04下测试通过。

将命令保存在test.txt中,然后逐行读取用man处理并将结果重定向到对应的文件中,程序36行,必要的地方有注释,这个程序只能在linux下运行,见截图,建议你用ubuntu学习Linux。

本回答被提问者采纳
第2个回答  2011-10-14
-o 就是 -output,就是输出的意思
你 man gcc或者 info gcc就能查到了追问

我上面要的程序呢?

追答

看不懂你要的是什么。

追问

你有没有看我的问题和描述?看不懂或是拖时间我可不予采纳!

追答

你说了半天了,也没有说你的程序是做什么的,还是你想重新写一个man的程序;
第二,gcc -o a.txt a.c
这个命令我还是第一次见到有人这么写的
一般都是 gcc xxx.c -o xxx
Linux 下面的程序部要求后缀名的

相似回答