- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言编程常见问题解答之系统调用,c语言函数调用,java调用c语言,c语言调用dll,python调用c语言,c语言调用汇编函数,c语言中函数的调用,c语言调用matlab函数,c语言函数的调用,c语言递归调用
C语言编程常见问题解答之系统调用
PC中最主要的难题之一,也是最容易引起误解的,就是系统调用。系统调用所代表的那些函数实际上是计算机的所有底层操作——屏幕和磁盘的控制,键盘和鼠标的控制,文件系统的管理,时间,打印,这些只不过是系统调用所实现的一部分功能。??? 总的来说,系统调用往往涉及到BIOS(基本输入输出系统)。实际中有好几种不同的BIOS,例如主板的BIOS负责初始硬件检测和系统引导,VGA BIOS(如果有VGA卡的话)处理所有的屏幕处理函数,固定磁盘BIOS管理硬盘驱动器,等等。DOS是位于这些低级BIOS之上的一个软件层,并且提供了进入这些低级BIOS的基本接口。一般说来,这意味着有一个DOS系统调用可以调用几乎所有你想使用的系统功能。实际上,DOS将调用相应的一种低级BIOS来完成所要求的任务。在本章中,你将会发现你既可以调用DOS来完成一项任务,也可以直接调用低级BIOS来完成相同的任务。
14.1? 怎样检索环境变量(environment variables)的值???? ANSI C标准提供了一个名为getenv()的函数来完成这项任务。getenv()函数很简单一把指向要查找的环境串的指针传递给它,它就返回一个指向该变量值的指针。下面的程序说明了如何从C中获得环境变量PATH的值:# include stdlib. hmain(int argc, char *? *? argv){??? char envValue[l29];???????????? / *? buffer to store PATH * /??? char *? envPtr = envValue ;???? / *? pointer to this buffer? * /??? envPtr = getenv(PATH);??????? /*? get the PATH */??? printf (PATH= %s\n , envPtr) ;?? / * print the PATH * /}??? 如果你编译并运行了这个程序,你就会看到与在DOS提示符下输入PATH命令完全相同的结果。事实上,你可以用getenv()检索AUTOEXEC.BAT文件中的或者系统引导后在DOS揭示符下输入的所有环境变量的值。??? 这里有一个小技巧。当运行Windows时,Windows设置了一个名为WINDIR的新的环境变量,它包含了Windows目录的路径全名。下面这段简单的程序用来检索这个串:# include stdlib. hmain(int argc, char * *? argv){??? char envValue[l29];??? char *? envPtr = envValue ;?? envPtr = getenv(windir);??? / * print the Windows directory * /??? printf(The Windows Directory is? %s\n ,? envPtr);}??? 这个程序还可以用来判断当前是否正在运行Windows,以及DOS程序是否运行在一个DOS shell下,而不是运行在“真正的DOS下。注意,程序中的windir字符串是小写——这一点很重要,因为它对大小写是敏感的。如果你使用WINDIR,getenv()就会返回一个NULL串(表示变量未找到错误)。??? 用一putenv()函数也可以设置环境变量。但要注意,该函数不是一个ANSI标准函数,在某些编译程序中它可能不以这个名字出现,或者根本就不存在。你可以用一putenv()函数做许多事情。实际上,在上面那个例子中,Windows正是用这个函数创建了windir环境变量。
请参:??? 14.2? 怎样在程序中调用DOS函数???? 14.3? 怎样在程序中调用BIOS函数?
14.2? 怎样在程序中调用DOS函数?? ? 其实,当调用printf(),fopen(),fclose(),名字以一dos开始的函数以及很多其它函数时,都将调用DOS函数。Microsoft和Borland还提供了一对名为int86()和int86x()的函数,使你不仅可以调用DOS函数,还可以调用其它低级函数。用这些函数可以跳过标准的C函数而直接调用DOS函数,这常常可以节省你的时间。下面的例子说明了如何通过调用DOS函数,而不是getch()和printf()函数,从键盘上得到一个字符并将其打印出来(该程序需要在大存储模式下编译)。# include stdlib. h# include dos. hchar GetAKey(void);void Outp
您可能关注的文档
- ((新人教版))初二数学试题八年级数学下《分式》单元检测习题.doc
- (人教新起点)一年级英语句型测试.doc
- (拷贝技能)心理咨询师咨询技能考试重点难点归纳.doc
- (标线、标志、交通信号灯)工程施工组织设计_secret.doc
- +不得不看的饮水小常识.doc
- Abaqus焊接模拟的例子.doc
- (韩亚明袁加华)浅谈江苏建筑工程中PHC管桩的施工质量控制(科技资讯).doc
- AA考本科口译与听力考试听力重点篇章.doc
- abaqus计算回弹的方法.doc
- ABB焊接机器人工作站故障的分析和维修.doc
- 初中建设项目初步设计.docx
- 2025年数字人民币在跨境电商支付风险管理中的创新实践.docx
- 脑机接口技术在2025年康复医疗伦理教育课程开发与教学实践.docx
- 2025年跨境电商进口业务供应链中断风险预警报告.docx
- 2025年数字人民币在跨境电商跨境支付中的合规性分析.docx
- 2025年教育行业线上翻译平台市场趋势与竞争格局分析.docx
- 低空经济无人机适航认证流程绿色化转型与可持续发展策略2025.docx
- 2025年数字人民币在跨境电子商务中的政策影响分析.docx
- 2025年数字人民币在跨境贸易中的清算效率与成本降低报告.docx
- 2025年数字人民币在跨境电商支付安全与风险防范中的应用策略研究.docx
最近下载
- 西门子840DSL报警导入模板.xls VIP
- 现代密码学(电子科大)中国大学MOOC慕课 章节测验期末考试客观题答案.pdf VIP
- TOTO东陶诺锐斯特TCF9898&9788WCS使用说明书.pdf
- 红警2共和国之辉rules.ini修改菜鸟教程.docx VIP
- 人教B版高中数学必修一全册教学课件.pptx
- 工程售后服务承诺书15篇.docx VIP
- 苏科版九年级物理电压和电压表的使用.pptx VIP
- 苏科物理九年级上册电流和电流表的使用课件.pptx VIP
- 蛇足石杉的孢子分析-特种植物育种与栽培专业论文.docx VIP
- 图形图像处理PhotoshopCC(电子商务专业)高职PPT完整全套教学课件.pptx VIP
文档评论(0)