|
发表于 2006-9-3 10:30:39
|
显示全部楼层
Post by 终极幻想
- /*
- wrapper.c - c wrapper for cross-lfs multiarch handling
- ------------------------------------------------------
- Created By: Ryan Oliver <ryan.oliver@pha.com.au> 20050606
- */
- #include <unistd.h>
- #include <stdlib.h>
- #include <errno.h>
- #include <string.h>
- /* TODO: should check for __x86_64__ , __powerpc64__ etc and set accordingly */
- #ifndef DEFAULTENV
- #define DEFAULTENV "64"
- #endif
- int main(int argc, char **argv)
- {
- char *filename;
- char *buildenv;
- if(!(buildenv = getenv("BUILDENV")))
- buildenv = DEFAULTENV;
- filename = (char *) malloc(strlen(argv[0]) + strlen(buildenv) + 2);
- strcpy(filename, argv[0]);
- strcat(filename, "-");
- strcat(filename, buildenv);
- execvp(filename, argv);
- perror(argv[0]);
- free(filename);
- }
复制代码
假定该程序名为 wrapper 。
程序先获取环境变量 $BUILDENV 的值,若为空,则置 $BUILDENV 为 DEFAULTENV (如"64")。
执行"wrapper-$BUILDENV" (如 wrapper-64 )这个程序。 |
|