首页 > 其他分享 >代码

代码

时间:2023-11-01 09:45:46浏览次数:35  
标签:cp arglist 代码 char numargs include buf

`#include <stdio.h>

include <stdlib.h>

include <string.h>

include <sys/types.h>

include <sys/wait.h>

include <unistd.h>

include <signal.h>

define MAXARGS 20

define ARGLEN 100

char *makestring( char *buf )
{
char *cp;

buf[strlen(buf)-1] = '\0';		
cp = malloc( strlen(buf)+1 );		
if ( cp == NULL ){			
	fprintf(stderr,"no memory\n");
	exit(1);
}
strcpy(cp, buf);		
return cp;			

}

void execute( char *arglist[] )
{
int pid,exitstatus;

pid = fork();					
switch( pid ){
	case -1:	
		perror("fork failed");
		exit(1);
	case 0:
		execvp(arglist[0], arglist);		
		perror("execvp failed");
		exit(1);
	default:
		while( wait(&exitstatus) != pid )
			;
		printf("child exited with status %d,%d\n",
				exitstatus>>8, exitstatus&0377);
}

}

int main()
{
char *arglist[MAXARGS+1];
int numargs;
char argbuf[ARGLEN];

numargs = 0;
while ( numargs < MAXARGS )
{					
	printf("Arg[%d]? ", numargs);
	if ( fgets(argbuf, ARGLEN, stdin) && *argbuf != '\n' )
		arglist[numargs++] = makestring(argbuf);
	else
	{
		if ( numargs > 0 ){		
			arglist[numargs]=NULL;	
			execute( arglist );	
			numargs = 0;		
		}
	}
}
return 0;

}`

标签:cp,arglist,代码,char,numargs,include,buf
From: https://www.cnblogs.com/lindaokun/p/17802333.html

相关文章

  • Ardour 8.0 开放源代码 DAW 发布
    导读Ardour8.0近日发布了,这是一款功能强大、免费、开源、跨平台的DAW(数字音频工作站),适用于GNU/Linux、macOS和Windows系统。Ardour8.0的亮点包括:全面支持NovationLaunchpadPro控制器、可对区域进行分组以一起移动或修剪、新的自动化绘图风格、重新设计的MI......
  • 开源 2 年、打磨 13 年、300 万行代码的开源项目
    从刻在石壁上的甲骨文,再到写在纸上的汉字,每一次信息载体的变更都是文化进步的重要标志。在如今这个信息数字化的时代,我们在享受着数字化便利的同时,数据也在我们看不见的地方飞速增长着,数据的重要性不言而喻。那应该如何将海量数据完整、有序、持久化地保存下来呢?程序员小伙伴看......
  • 《代码大全2》读后感
    代码改进,这部分包括以下几个主题,协同、测试、调试、重构、调整。这里的测试是开发者测试,应该是指单元测试了,现有很多合适的工具,比如NUnit、CppUnit、JUnit等等。调试主要难点在于寻找和定位问题,解决问题虽然也不容易,但需要的是远见,因为再不济,总会存在一种打补丁的方法可以临时解......
  • 代码生成器 CodeBuilder 3.2 正式版发布
    CodeBuilder是一款强大的代码生成工具,目前发布了3.2版本,大家可以前去下载体验官方主页。1、多种数据源基于ADO.NET的数据驱动PowerDesignerPDManerDbSchemaSwagger这几种数据源基本上已经覆盖了我们常用的数据环境了,如果你有能力的话,可以自己开发数据源......
  • 代码大全2读后感4
    《代码大全》看完前面觉得有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍。本书的思想管理软件项目的本质是管理复杂性。代码承载的是人与人之间的交流。在这,作个读书心得。全书的主题是软件构建,大致看了一下目录,关于软件构建问题的方方面面均有涉及,共分7个部分,从软......
  • 代码 测试用例 测试用例 测试结果 26. 删除有序数组中的重复项
    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通......
  • R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响|附代码数据
    全文下载链接:http://tecdat.cn/?p=21506最近我们被客户要求撰写关于TV-PSTR的研究报告,包括一些图形和统计输出。在本文中,当采用两种状态时,单转换函数PSTR模型具有两个变量:我们的经验方法的基础包括评估N个国家的资本流动性。相应的模型定义如下:其中,Iit是第i个国家在时间t时观......
  • SPSS Modeler分析物流发货明细数据:K-MEANS(K均值)聚类和Apriori关联规则挖掘|附代码数据
    全文链接:http://tecdat.cn/?p=32633原文出处:拓端数据部落公众号物流发货明细数据在现代物流业中扮演着至关重要的角色。通过对这些数据进行挖掘和分析,我们可以发现隐含在背后的供应链运营规律和商业模式,从而指导企业在物流策略、成本管理和客户服务等方面做出更加科学和有效的决......
  • hugepage 示例代码
    #include<fcntl.h>#include<sys/mman.h>#include<errno.h>#include<stdio.h>#defineMAP_LENGTH(500*1024*1024)//10MBintmain(){intfd;void*addr;//1.创建一个Hugetlb文件系统的文件fd1=open("/dev/hugepag......
  • 使用Postman快速复现浏览器的请求(包括生成调用代码)
    前言大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。好久没有写开发类的工具使用文了,这次我来讲下平时我是如何使用Postman工具的。一、工具准备软件下载链接:https://www.postman.c......