12 2008 档案

让程序只运行一个实例(C#)
摘要:通常我们会遇到这样的情况,让程序只运行一个实例,比如启动杀毒软件时,只能启动一个,再启动的话就没什么效果!利用程序名来判断不是一个好办法,如果我们把程序名称改一下就可以运行两个完全一样的进程。我们最好利用程序集的Attribute存放特定信息,然后用Assembly对象的GetCustomAttributes()方法获取该信息进行判断。在这里,我有两个解决方法:方法一.我把AssemblyInfo.cs里的[assembly: AssemblyFileVersion("1.0.0.0")]改为[assembly:AssemblyFileVersion("2.0.0 阅读全文

posted @ 2008-12-25 00:57 NULL00 阅读(583) 评论(0) 推荐(1)

使用pipe()与fork()函数通过管道实现父子进程之间的通信
摘要:学习Unix遇到一个题目,要求使用pipe(),fork()函数编写一个程序,能够通过管道实现父子进程之间的通信。对于fork()函数,调用一次,返回两次:在子进程中返回0;在父进程中返回子进程的进程ID;出错则返回-1。为什么子进程中只需返回0,而无需返回父进程的进程ID? 子进程中可以调用getppid()函数来获得父进程的进程ID为什么在父进程中要返回子进程的进程ID? 一个父进程可能有多个子进程,所以在调用fork()函数创建新进程是就需要保存新创建的子进程的进程ID管道的创建:int pipe(int filedes[2]) 成功返回0; 出错返回-1。filedes[0]用... 阅读全文

posted @ 2008-12-02 14:16 NULL00 阅读(8791) 评论(0) 推荐(0)

SSD6中Exercise4 (substitute.cpp) 答案解析
摘要:今天终于把Exercise4搞定了,昨天大约优化了0.38秒,今天优化了0.52秒,跨越了一大步。在我们未加任何修饰执行此代码时,其执行后所用时间如图(摘抄主要):FunctionCallee Exclusive Timemain1.495306IndexOf( String, int32 )0.771013insertChar( String, int32, String, int32 )0.444054我们发现insertChar()函数里面就一条return语句,这完全没必要,何必还调用一个函数呢,申请栈释放栈很浪费时间,然后我们去掉这个函数,直接在别的函数里面用它里面的语句。我们再来看 阅读全文

posted @ 2008-12-01 22:55 NULL00 阅读(2763) 评论(1) 推荐(0)

导航