﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-jnn10</title><link>http://www.cppblog.com/jnn10/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:07:59 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:07:59 GMT</pubDate><ttl>60</ttl><item><title>[导入]线性表</title><link>http://www.cppblog.com/jnn10/archive/2007/01/17/17710.html</link><dc:creator>思想的驴</dc:creator><author>思想的驴</author><pubDate>Wed, 17 Jan 2007 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/jnn10/archive/2007/01/17/17710.html</guid><wfw:comment>http://www.cppblog.com/jnn10/comments/17710.html</wfw:comment><comments>http://www.cppblog.com/jnn10/archive/2007/01/17/17710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jnn10/comments/commentRss/17710.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jnn10/services/trackbacks/17710.html</trackback:ping><description><![CDATA[#include "stdio.h"<br />#define max 80<br />#define Error 0<br />#define Ok&nbsp;&nbsp;&nbsp; 1<br />typedef int ElemType;<br />typedef struct<br />{<br />&nbsp;ElemType elem[max];<br />&nbsp;int last;<br />}SeqList;<br />SeqList *NewSeq()<br />{<br />&nbsp;SeqList *L;<br />&nbsp;L=(SeqList *)malloc(sizeof(SeqList));<br />&nbsp;L-&gt;last=0;<br />&nbsp;return L;<br />}<br />int AddSeq(SeqList *L,int i,ElemType e)<br />{<br />&nbsp;int k;<br />&nbsp;if(L-&gt;last&gt;=max)<br />&nbsp; {<br />&nbsp;&nbsp; printf("The List is full!\n");<br />&nbsp;&nbsp; return(Error);<br />&nbsp; }<br />&nbsp;i--;<br />&nbsp;if(i&gt;L-&gt;last)<br />&nbsp; {<br />&nbsp;&nbsp; printf("Error Add Point!\n");<br />&nbsp;&nbsp; return(Error);<br />&nbsp; }<br />&nbsp;for(k=L-&gt;last;k&gt;=i;k--)<br />&nbsp; L-&gt;elem[k]=L-&gt;elem[k-1];<br />&nbsp;L-&gt;elem[i]=e;<br />&nbsp;L-&gt;last++;<br />&nbsp;return(Ok);<br />}<br />int MovSeq(SeqList *L,int i)<br />{<br />&nbsp;if(L-&gt;last==0)<br />&nbsp; {<br />&nbsp;&nbsp; printf("The List is empty!\n");<br />&nbsp;&nbsp; return(Error);<br />&nbsp; }<br />&nbsp;i--;<br />&nbsp;if(i&gt;=L-&gt;last)<br />&nbsp; {printf("Error Mov Point!\n");<br />&nbsp;&nbsp; return(Error);<br />&nbsp; }<br />&nbsp;for(;i&lt;=L-&gt;last-1;i++)<br />&nbsp; L-&gt;elem[i]=L-&gt;elem[i+1];<br />&nbsp;L-&gt;last--;<br />&nbsp;return(Ok);<br />}<br />int PtSeq(SeqList *L)<br />{<br />&nbsp;int i;<br />&nbsp;if(L-&gt;last==0)<br />&nbsp; {<br />&nbsp;&nbsp; printf("The List is Empty!\n");<br />&nbsp;&nbsp; return(Error);<br />&nbsp; }<br />&nbsp;for(i=0;i&lt;L-&gt;last;i++)<br />&nbsp; printf("%d ",L-&gt;elem[i]);<br />&nbsp;return(Ok);<br />}<br />main()<br />{<br />&nbsp;int i;<br />&nbsp;int o=1;<br />&nbsp;ElemType e;<br />&nbsp;char c;<br />&nbsp;SeqList *L;<br />&nbsp;L=NewSeq();<br />&nbsp;do<br />&nbsp; {printf("\n********************************************************************************");<br />&nbsp;&nbsp; printf("\nPlease press your key to choose your order:");<br />&nbsp;&nbsp; printf("\n&nbsp;&nbsp;&nbsp; press 'a' to Add Element;");<br />&nbsp;&nbsp; printf("\n&nbsp;&nbsp;&nbsp; press 'm' to Mov Element;");<br />&nbsp;&nbsp; printf("\n&nbsp;&nbsp;&nbsp; press 'p' to Print List;");<br />&nbsp;&nbsp; printf("\n&nbsp;&nbsp;&nbsp; press 'q' to Quite the Program.\n-");<br />loop:<br />&nbsp;&nbsp; c=getch();<br />&nbsp;&nbsp; switch(c)<br />&nbsp;&nbsp;&nbsp; {case 'a': printf("%c\n",c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Please Enter the Add Point:");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",&amp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Please Enter the Add Elem :");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",&amp;e);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddSeq(L,i,e);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp; case 'm' :printf("%c\n",c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Please Enter the Mov Point:");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf("%d",&amp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MovSeq(L,i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp; case 'p' :printf("%c\n",c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("The List is:\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PtSeq(L);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp; case 'q': printf("%c\n",c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Are you sure to quit the program?(y/n)-");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(!(c=='y'||c=='n'))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=getch();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c=='y')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%c\n",c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp; default:&nbsp; goto loop;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp; }while(o);<br />}<img src ="http://blog.coders.com.cn/jnn10/aggbug/891.html" width = "1" height = "1" /><br>文章来源:<a href='http://blog.coders.com.cn/jnn10/archive/2007/01/16/891.html'>http://blog.coders.com.cn/jnn10/archive/2007/01/16/891.html</a><img src ="http://www.cppblog.com/jnn10/aggbug/17710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jnn10/" target="_blank">思想的驴</a> 2007-01-17 10:05 <a href="http://www.cppblog.com/jnn10/archive/2007/01/17/17710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]操作系统之所想</title><link>http://www.cppblog.com/jnn10/archive/2007/01/17/17709.html</link><dc:creator>思想的驴</dc:creator><author>思想的驴</author><pubDate>Wed, 17 Jan 2007 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/jnn10/archive/2007/01/17/17709.html</guid><wfw:comment>http://www.cppblog.com/jnn10/comments/17709.html</wfw:comment><comments>http://www.cppblog.com/jnn10/archive/2007/01/17/17709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jnn10/comments/commentRss/17709.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jnn10/services/trackbacks/17709.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 我用过的也只限于Windows,但是可以狂想~~~<br />&nbsp;&nbsp;&nbsp; 操作简单之如Windows,所见既所得,图形界面,减少鼠标控制,更多键盘控制,提供智能化的控制方式(语音等).<br />&nbsp;&nbsp;&nbsp; 强大的命令控制,整个系统处于数据库管理中,不必理会文件存放地.<br />&nbsp;&nbsp;&nbsp; 不区分本机与网络,特定时候,本地存储充当本机与网络之间的缓冲.<br />&nbsp;&nbsp;&nbsp; 三维输出,有时间轴,分块管理,看资料犹如点网页.<br />&nbsp;&nbsp;&nbsp; 智能家庭.<br />(整理中,待续…) <img src ="http://blog.coders.com.cn/jnn10/aggbug/893.html" width = "1" height = "1" /><br>文章来源:<a href='http://blog.coders.com.cn/jnn10/archive/2007/01/16/893.html'>http://blog.coders.com.cn/jnn10/archive/2007/01/16/893.html</a><img src ="http://www.cppblog.com/jnn10/aggbug/17709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jnn10/" target="_blank">思想的驴</a> 2007-01-17 10:05 <a href="http://www.cppblog.com/jnn10/archive/2007/01/17/17709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]为什么会有几个Svchost.exe进程</title><link>http://www.cppblog.com/jnn10/archive/2007/01/17/17708.html</link><dc:creator>思想的驴</dc:creator><author>思想的驴</author><pubDate>Wed, 17 Jan 2007 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/jnn10/archive/2007/01/17/17708.html</guid><wfw:comment>http://www.cppblog.com/jnn10/comments/17708.html</wfw:comment><comments>http://www.cppblog.com/jnn10/archive/2007/01/17/17708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jnn10/comments/commentRss/17708.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jnn10/services/trackbacks/17708.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; Svchost.exe,是系统必不可少的一个进程,很多服务都会多多少少用到它.Windows 系统服务分为独立进程和共享进程两种，在windows NT时只有服务器管理器SCM（Service*.**e）有多个共享服务，随着系统内置服务的增加，在windows 2000中ms又把很多服务做成共享方式，由svchost.exe启动。windows 2000一般有2个svchost进程，一个是RPCSS（Remote Procedure Call）服务进程，另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中，则一般有4个以上的svchost.exe服务进程，windows 2003 server中则更多，可以看出把更多的系统内置服务以共享进程方式由svchost启动是ms的一个趋势。这样做在一定程度上减少了系统资源的消耗，不过也带来一定的不稳定因素，因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出.&nbsp;<br />&nbsp;&nbsp;&nbsp; Svchost本身只是作为服务宿主，并不实现任何服务功能，需要Svchost启动的服务以动态链接库形式实现，在安装这些服务时，把服务的可执行程序指向svchost，启动这些服务时由svchost调用相应服务的动态链接库来启动服务。&nbsp;<br />&nbsp;&nbsp;&nbsp; Svchost知道某一服务是由哪个动态链接库负责,不是由服务的可执行程序路径中的参数部分提供的，而是服务在注册表中的参数设置的，注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数，用来处理服务任务。ms把这些服务分为几组，同组服务共享一个svchost进程，不同组服务使用多个svchost进程，组的区别是由服务的可执行程序后边的参数决定的。svchost的所有组和组内的所有服务都在注册表的如下位置： HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost <br />在启动一个svchost.exe负责的服务时，服务管理器如果遇到可执行程序内容ImagePath已经存在于服务管理器的映象库中，就不在启动第2个进程svchost，而是直接启动服务。这样就实现了多个服务共享一个svchost进程。 <img src ="http://blog.coders.com.cn/jnn10/aggbug/894.html" width = "1" height = "1" /><br>文章来源:<a href='http://blog.coders.com.cn/jnn10/archive/2007/01/16/894.html'>http://blog.coders.com.cn/jnn10/archive/2007/01/16/894.html</a><img src ="http://www.cppblog.com/jnn10/aggbug/17708.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jnn10/" target="_blank">思想的驴</a> 2007-01-17 10:05 <a href="http://www.cppblog.com/jnn10/archive/2007/01/17/17708.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>