Linux shell模拟实例 C语言.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接键入“make”即可运行,无需修改。 可键入”DEBUG=yes”查命令,然后键入”DEBUG=no”取消。 期中包括简单命令,管道命令模拟。 以下是MAKEFILE: # # # Sample Makefile for Assignment 2 # CFLAGS = -g -Wall -Werror -O2 CC = gcc PROGRAM = mybash CFILES = parser.c mybash.c HFILE = parser.h ################################################## # # You shouldnt need to change anything else # ################################################## # compute the OFILES OFILES = ${CFILES:.c=.o} # all of the .o files that the program needs OBJECTS = ${OFILES} # How to make the whole program ${PROGRAM} : ${OBJECTS} ${CC} ${CFLAGS} ${OBJECTS} -o ${PROGRAM} # # File dependencies # ${OFILES}: ${HFILE} parser.h clean: /bin/rm -f *.o ${PROGRAM} 头文件: /* the states */ #define COMMAND 1 #define ARG 2 #define INFILE 3 #define OUTFILE 4 #define UNDEF 5 struct Command { char *command; char *args[11]; int numargs; }; struct CommandData { struct Command TheCommands[20]; /* the commands to be executed. TheCommands[0] is the first command to be executed. Its output is piped to TheCommands[1], etc. */ int numcommands; /* the number of commands in the above array */ char *infile; /* the file for input redirection, NULL if none */ char *outfile; /* the file for output redirection, NULL if none */ int background; /* 0 if process is to run in foreground, 1 if in background */ }; extern int ParseCommandLine(char *, struct CommandData *); 头文件中函数: #include stdio.h #include strings.h /* for strdup */ #include parser.h static int IsAlphaNum(char c) /* is this a valid char for a pathname or filename? */ { if (c = A c = Z) return 1; if (c = a c = z) return 1; if (c = 0 c = 9) return 1; if (c == . || c == _ || c == / || c == -) return 1; return 0; } /************** COPYWORD ************** This function copies a word (token) to the appropriate field of the struct CommandData data, and resets state. It returns 1 if successful, 0 if it detects an error. This is called from the function ParseCommandLine ******

文档评论(0)

hong333666 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档