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

希望效果:系统执行manXXXXX,如果查不到,查下一条并保存,例如:manlr>>help.txt失败,执行manls>>help.txt.首字母范围:a-z,命令长度... 希望效果:系统执行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盘装的东西太多怕改注册表改出问题来了。
展开
 我来答
lin040444
2011-10-14 · TA获得超过2560个赞
知道大有可为答主
回答量:1168
采纳率:0%
帮助的人:1652万
展开全部
执行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类,预处理程序在目标文件的文件夹内搜索相应文件。

参考资料: 百科

百度网友b2abb2d
2011-10-14 · 超过12用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:30.8万
展开全部
翻译一下你的问题的描述:找到/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。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫翼魔狼
2011-10-14 · TA获得超过4344个赞
知道大有可为答主
回答量:1413
采纳率:42%
帮助的人:603万
展开全部
-o 就是 -output,就是输出的意思
你 man gcc或者 info gcc就能查到了
更多追问追答
追问
我上面要的程序呢?
追答
看不懂你要的是什么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式