首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用c语言实现dos命令 例如 cd 等解决思路

2012-03-29 
用c语言实现dos命令 例如 cd 等能不能用c语言实现dos下的目录转换功能 比如说 目前目录为C:\windows,转换

用c语言实现dos命令 例如 cd 等
能不能用c语言实现dos下的目录转换功能 比如说 目前目录为C:\windows,转换为C:\desktop,应该如何编程呢?求助!!!!

[解决办法]
如果是Turbo C的话,用chdir改变当前目录,注意如果是不同盘的话,需要先用setdisk改变工作驱动器才有效。
http://www.feiesoft.com/cmd/tc/setdisk.html
http://www.feiesoft.com/cmd/tc/chdir.html
如果是VC或者MS C的话,用_chdrive和_chdir,也是最好先改变工作驱动器为好。
http://msdn.microsoft.com/en-us/library/0d1409hb(v=VS.71).aspx
http://msdn.microsoft.com/en-us/library/bf7fwze1(v=VS.71).aspx
[解决办法]
不过如果你用的是Turbo C的话,它太旧了,上个世纪80年代,不支持长文件名的,如果在Windows里改变目录的话,最好用中断调用:INT 21h,AH=713Bh。参数是DS:DX寄存器保存地址指向一个0结尾的字符串。
如果成功的话,CF位会清0。AX返回错误码,AX=7100h代表不支持长文件名。
最好还是不要用TC了,它旧了,语法也很老旧,不支持C99规范,很多地方也不严格,可以用LCC Win32或者DJGPP代替。前者是32位的小巧C编译器,比较纯粹、八面玲珑;后者是GCC的移植版,可做DOS、Windows甚至Linux的C/C++/汇编开发(支持多种编译格式),配RHIDE的风格和TC很接近,但是功能强大很多。在Windows下切换目录可以用SetCurrentDirectory,长文件名处理要简单很多。

热点排行