资源简介
rpm-4.11.2 可下载,可用,这个是从官网扒下来的。
代码片段和文件信息
#include “system.h“
#if HAVE_MCHECK_H
#include
#endif
#include
#include
#include
#include
#include
#include
#include
#include “cliutils.h“
#include “debug.h“
static pid_t pipeChild = 0;
RPM_GNUC_NORETURN
void argerror(const char * desc)
{
fprintf(stderr _(“%s: %s\n“) __progname desc);
exit(EXIT_FAILURE);
}
static void printVersion(FILE * fp)
{
fprintf(fp _(“RPM version %s\n“) rpmEVR);
}
static void printBanner(FILE * fp)
{
fprintf(fp _(“Copyright (C) 1998-2002 - Red Hat Inc.\n“));
fprintf(fp _(“This program may be freely redistributed under the terms of the GNU GPL\n“));
}
void printUsage(poptContext con FILE * fp int flags)
{
printVersion(fp);
printBanner(fp);
fprintf(fp “\n“);
if (rpmIsVerbose())
poptPrintHelp(con fp flags);
else
poptPrintUsage(con fp flags);
}
int initPipe(void)
{
int p[2];
if (pipe(p) < 0) {
fprintf(stderr _(“creating a pipe for --pipe failed: %m\n“));
return -1;
}
if (!(pipeChild = fork())) {
(void) signal(SIGPIPE SIG_DFL);
(void) close(p[1]);
(void) dup2(p[0] STDIN_FILENO);
(void) close(p[0]);
(void) execl(“/bin/sh“ “/bin/sh“ “-c“ rpmcliPipeOutput NULL);
fprintf(stderr _(“exec failed\n“));
exit(EXIT_FAILURE);
}
(void) close(p[0]);
(void) dup2(p[1] STDOUT_FILENO);
(void) close(p[1]);
return 0;
}
int finishPipe(void)
{
int rc = 0;
if (pipeChild) {
int status;
pid_t reaped;
(void) fclose(stdout);
do {
reaped = waitpid(pipeChild &status 0);
} while (reaped == -1 && errno == EINTR);
if (reaped == -1 || !WIFEXITED(status) || WEXITSTATUS(status))
rc = 1;
}
return rc;
}
相关资源
- JDK8 绿色版 免安装版 64位
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- Linux系统教材
- intel 82579LM 网卡驱动Linux系统版 v1.9.
- SA1110处理器掌上电脑液晶显示器设计
- 基于Linux的串口服务器设计
评论
共有 条评论