这几天写个超级小的东西都弄了好久的时间。
原因:
1、没有了解“客户”的需求;
2、掌握太差;
3、有点死脑筋了。
先是要运行某个文件,非要整个system()函数,原以为他想要运行某个exe文件,死命的拼写出start cmd.exe等字样的char *p,原来直接赋值的指针是作为常量的。
char *p = "C://windows//system32//cmd.exe"一个指向字符串的指针常量而已。隐含了const的意思。后来在CU上看到同样问题的人,在用strcat的拼写时,出错的。有人说和具体的环境有关。。。在DOS下是可以的。晕乎!
得了,在用system()的时候就有人提议用ShellExecute()才用了下,果然好用的函数。
后来才知道是要fopen的功能而已。改。。。
改的时候特诡异,以前记得在学这个时候,老师千叮咛万嘱咐的说,fopen后一定要fclose,否则文件打开的句柄将被留在内存中,我就要的是这个效果,没想到的是,居然程序结束了就自动关闭了。无语。
得了,常驻内存吧,首先想法,弄个server类型的或者是用线程/进程挂起或等待就好。可是没找到相关的内容。(C太菜的缘故),发现一个keep()的函数,怎么调都用不了。Y?今天查了下,原来我的DOS.H里面没有这个函数。
麻烦是麻烦,那个时候我就说写个死寻欢就常驻内存了,其实这样的不增加资源的消耗的,今天测试了下是可以的,再加上之前的ShellExecute()的组合,就可以咯。
这么多里面,充满着失败,狂伤心的。。。
在这里有很多思想上的错误,也许程序员不是该光追求技术,很多时候可以有其他的处理办法,这个才是比较好的。不要挂死在牛角尖里!