码迷,mamicode.com
首页 > 系统相关 > 详细

Linux网络编程学习(三) ----- 进程控制实例

时间:2018-04-19 21:57:45      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:linux网络编程   set   too   传递   get   程序   基本   文件   too long   

本节主要介绍一个进程控制的实例,功能就是在前台或者后台接收命令并执行命令,还能处理由若干个命令组成的命令行,该程序命名为samllsh。

基本逻辑就是

while(EOF not typed)
{
     从用户终端取得命令行
     执行命令  
}

setp1:取得命令行内容,用uerin函数实现,处理步骤首先显示提示符,提示符的具体内容由用户通过参数传递给函数,然后每次从键盘读取一个字符,存入inpbuf中,结束时userin返回字符个数或者EOF(文件结尾),换行符也要存入inpbuf

代码如下:

#include "smallsh.h"
/* 程序缓冲区和指针 */
static char inpbuf[MAXBUF],tokbuf[2*MAXBUF],
*ptr = inpbuf,*tok = tokbuf;
/* userin()函数 */
int userin(chat* p)
{
	int c,count;
	ptr = inpbuf;
	tok = tokbuf;
	/* 显示提示 */
	printf("%s ",p);
	for (count = 0;;) 
	{
		if ((c=getchar())==EOF)
		return(EOF);
		if (count < MAXBUF)
		inpbuf[count++] = c;
		if (c ==‘\n‘ && count < MAXBUF) 
		{
			inpbuf[count] = ‘\0‘;
			return(count);
		}
		/* 如果行过长重新输入 */
		if (c == ‘\n‘) 
		{
			printf("smallsh:input line too long\n");
			count=0;
			printf("%s ",p);
		}
	}
}

  其中的头文件samllsh.h内容为

#include <stdio.h>
#define EOL 1 /* 行结束 */
#define ARG 2
#define AMPERSAND 3
#define SEMICOLON 4
#define MAXARG 512 /* 命令行参数个数的最大值 */
#define MAXBUF 512 /* 输入行的最大长度 */
#define FOREGROUND 0
#define BACKGROUND 1

  

Linux网络编程学习(三) ----- 进程控制实例

标签:linux网络编程   set   too   传递   get   程序   基本   文件   too long   

原文地址:https://www.cnblogs.com/xqn2017/p/8886195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!