LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1843|回复: 11

这个 C 程序是干嘛的?。帮忙看看。

[复制链接]
发表于 2006-9-3 09:04:37 | 显示全部楼层 |阅读模式
  1. /*
  2.    wrapper.c - c wrapper for cross-lfs multiarch handling
  3.    ------------------------------------------------------
  4.    Created By:  Ryan Oliver <ryan.oliver@pha.com.au> 20050606
  5. */
  6. #include <unistd.h>
  7. #include <stdlib.h>
  8. #include <errno.h>
  9. #include <string.h>
  10. /* TODO: should check for __x86_64__ , __powerpc64__ etc and set accordingly */
  11. #ifndef DEFAULTENV
  12. #define DEFAULTENV "64"
  13. #endif
  14. int main(int argc, char **argv)
  15. {
  16.   char *filename;
  17.   char *buildenv;
  18.   if(!(buildenv = getenv("BUILDENV")))
  19.     buildenv = DEFAULTENV;
  20.   filename = (char *) malloc(strlen(argv[0]) + strlen(buildenv) + 2);
  21.   strcpy(filename, argv[0]);
  22.   strcat(filename, "-");
  23.   strcat(filename, buildenv);
  24.   execvp(filename, argv);
  25.   perror(argv[0]);
  26.   free(filename);
  27. }
复制代码

偶不懂 C,不知道这程序是干嘛的。。,哪位解释一下?谢谢。
发表于 2006-9-3 09:15:02 | 显示全部楼层
<凯达> UFantasy: 这个程序最起码可以拿来消遣销魂 MM ~
<UFantasy> 。你就知道逗人家MM。。。
<UFantasy> 都不帮MM
回复 支持 反对

使用道具 举报

发表于 2006-9-3 10:30:39 | 显示全部楼层
Post by 终极幻想

  1. /*
  2.    wrapper.c - c wrapper for cross-lfs multiarch handling
  3.    ------------------------------------------------------
  4.    Created By:  Ryan Oliver <ryan.oliver@pha.com.au> 20050606
  5. */

  6. #include <unistd.h>
  7. #include <stdlib.h>
  8. #include <errno.h>
  9. #include <string.h>

  10. /* TODO: should check for __x86_64__ , __powerpc64__ etc and set accordingly */
  11. #ifndef DEFAULTENV
  12. #define DEFAULTENV "64"
  13. #endif

  14. int main(int argc, char **argv)
  15. {
  16.   char *filename;
  17.   char *buildenv;

  18.   if(!(buildenv = getenv("BUILDENV")))
  19.     buildenv = DEFAULTENV;

  20.   filename = (char *) malloc(strlen(argv[0]) + strlen(buildenv) + 2);
  21.   strcpy(filename, argv[0]);
  22.   strcat(filename, "-");
  23.   strcat(filename, buildenv);

  24.   execvp(filename, argv);
  25.   perror(argv[0]);
  26.   free(filename);
  27. }
复制代码


假定该程序名为 wrapper 。
程序先获取环境变量 $BUILDENV 的值,若为空,则置 $BUILDENV 为 DEFAULTENV (如"64")。
执行"wrapper-$BUILDENV" (如 wrapper-64 )这个程序。
回复 支持 反对

使用道具 举报

发表于 2006-9-3 11:00:37 | 显示全部楼层
威廉周又在扮 MM 钓大虾乎 :ask。。。(闪!)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 11:58:08 | 显示全部楼层
Post by Lolita
假定该程序名为 wrapper 。
程序先获取环境变量 $BUILDENV 的值,若为空,则置 $BUILDENV 为 DEFAULTENV (如"64")。
执行"wrapper-$BUILDENV" (如 wrapper-64 )这个程序。

噢。。这样。。知道了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 12:07:54 | 显示全部楼层
Post by d00m3d
威廉周又在扮 MM 钓大虾乎 :ask。。。(闪!)

偶那是 姜太公钓鱼。。。。。。
回复 支持 反对

使用道具 举报

发表于 2006-9-3 14:23:38 | 显示全部楼层
真不知道这个程序有什么用~~
回复 支持 反对

使用道具 举报

发表于 2006-9-3 22:01:40 | 显示全部楼层
销魂难道不把书看完就开始吗?
This multiarch wrapper is going to be used later on in the book with perl. It will also be very useful outside of the base CLFS system.
小心出问题喔~(闪……)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 22:16:59 | 显示全部楼层
没仔细看,哪里写的?。贴个连接?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 22:36:29 | 显示全部楼层
知道了。。被偶忽略了。呵呵。。。。。谢谢啊。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表