贴段 CSP 程序给大家看看, CSP 源程序就长这个样:<CENTER><STRONG>Software Version: 1.09</STRONG></CENTER><BR>
<%
@include <stdlib.h>
@include "../usr/menu.h"
%><%
{
int i, j, k;
int subnum=0, cnt=0; MENU_NODE menu_basic_setting[] = {
{0, "SETTING", ""},
{0, "Rate Setting", "/setting/rate_setting.htm"},
{0, "Error Correction Setting", "/setting/error_correction_setting.htm"},
{0, "IP Setting", "/setting/ip_setting.htm"},
{0, "Initialization Setting", "/setting/init_setting.htm"},
}; MENU_NODE menu_status[] = {
{0, "STATUS", ""},
{0, "Version Information", "/status/version_info.htm"},
{0, "Equipment Status", "/status/device_status.htm"},
{0, "Statistics", "/status/network_statisics.htm"},
{0, "Status Lists", "/status/status_list.htm"},
};
... /* list menu node */
MENU_MANI_NODE nodes[] = {
MENU_ADD_NODE(menu_basic_setting),
MENU_ADD_NODE(menu_status),
...
MENU_ADD_NODE(menu_maintenance),
};%><% for (i=0; i<ARRAYNUM(nodes); i++) { %>
<TABLE cellSpacing=0 cellPadding=3 width=187 border=0>
<TBODY>
<TR bgColor=#000080>
<TD colSpan=2><FONT color=#ffff00><STRONG> <%
=(nodes[i].subnode->pagename) %></STRONG></FONT>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=1 bgColor=#e6e6fa border=0 width="187">
<TBODY>
<% /* not include it self */
for (j=0; j<(int)nodes[i].sub_num-1; ) {
MENU_NODE * p_node = nodes[i].subnode+j+1; /* show sub menu */
if (subnum > 0) {
for (k=0; k<subnum; k++, j++, cnt++) {
%> <TR>
<TD> </TD>
<TD><TABLE><TR height=16>
<TD vAlign=center noWrap align=left width=25><NOBR><IMG height=14
src="<% =romPrefix(NULL) %>/img/hekomi.jpg" width=14 name=glint<%
%print("%d", cnt)%>><A
onmouseover="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/orange.jpg'"
onmouseout="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/hekomi.jpg'"
href="<% =cgiPrefix(NULL) %><% =((p_node+k)->url)
%>" target=opr> <% =((p_node+k)->pagename) %></A>
</TABLE>
</TD>
</TR>
<% } /* for k=0 */
} else {
%> <TR>
<TD vAlign=center noWrap align=left width=22><NOBR><IMG height=16
src="<% =romPrefix(NULL) %>/img/stat.jpg" width=16 name=glint<%
%print("%d", cnt)%>></NOBR> </TD>
<TD vAlign=center noWrap align=left><A
onmouseover="document.images['glint<%%print("%d", cnt) %>'].src='<%
=romPrefix(NULL) %>/img/dyn.jpg'"
onmouseout="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/stat.jpg'"
href="<% =cgiPrefix(NULL) %><% =(p_node->url)
%>" target=opr><% =(p_node->pagename) %></A>
</TD>
</TR>
<% cnt ++, j++;
} /* if p_node->sub_num > 0 */ subnum = p_node->sub_num;
} /* for j=0 */ %></TBODY>
</TABLE>
<%
} /* for i=0 */
}
%>
<%
@include <stdlib.h>
@include "../usr/menu.h"
%><%
{
int i, j, k;
int subnum=0, cnt=0; MENU_NODE menu_basic_setting[] = {
{0, "SETTING", ""},
{0, "Rate Setting", "/setting/rate_setting.htm"},
{0, "Error Correction Setting", "/setting/error_correction_setting.htm"},
{0, "IP Setting", "/setting/ip_setting.htm"},
{0, "Initialization Setting", "/setting/init_setting.htm"},
}; MENU_NODE menu_status[] = {
{0, "STATUS", ""},
{0, "Version Information", "/status/version_info.htm"},
{0, "Equipment Status", "/status/device_status.htm"},
{0, "Statistics", "/status/network_statisics.htm"},
{0, "Status Lists", "/status/status_list.htm"},
};
... /* list menu node */
MENU_MANI_NODE nodes[] = {
MENU_ADD_NODE(menu_basic_setting),
MENU_ADD_NODE(menu_status),
...
MENU_ADD_NODE(menu_maintenance),
};%><% for (i=0; i<ARRAYNUM(nodes); i++) { %>
<TABLE cellSpacing=0 cellPadding=3 width=187 border=0>
<TBODY>
<TR bgColor=#000080>
<TD colSpan=2><FONT color=#ffff00><STRONG> <%
=(nodes[i].subnode->pagename) %></STRONG></FONT>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=1 bgColor=#e6e6fa border=0 width="187">
<TBODY>
<% /* not include it self */
for (j=0; j<(int)nodes[i].sub_num-1; ) {
MENU_NODE * p_node = nodes[i].subnode+j+1; /* show sub menu */
if (subnum > 0) {
for (k=0; k<subnum; k++, j++, cnt++) {
%> <TR>
<TD> </TD>
<TD><TABLE><TR height=16>
<TD vAlign=center noWrap align=left width=25><NOBR><IMG height=14
src="<% =romPrefix(NULL) %>/img/hekomi.jpg" width=14 name=glint<%
%print("%d", cnt)%>><A
onmouseover="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/orange.jpg'"
onmouseout="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/hekomi.jpg'"
href="<% =cgiPrefix(NULL) %><% =((p_node+k)->url)
%>" target=opr> <% =((p_node+k)->pagename) %></A>
</TABLE>
</TD>
</TR>
<% } /* for k=0 */
} else {
%> <TR>
<TD vAlign=center noWrap align=left width=22><NOBR><IMG height=16
src="<% =romPrefix(NULL) %>/img/stat.jpg" width=16 name=glint<%
%print("%d", cnt)%>></NOBR> </TD>
<TD vAlign=center noWrap align=left><A
onmouseover="document.images['glint<%%print("%d", cnt) %>'].src='<%
=romPrefix(NULL) %>/img/dyn.jpg'"
onmouseout="document.images['glint<%%print("%d", cnt)%>'].src='<%
=romPrefix(NULL) %>/img/stat.jpg'"
href="<% =cgiPrefix(NULL) %><% =(p_node->url)
%>" target=opr><% =(p_node->pagename) %></A>
</TD>
</TR>
<% cnt ++, j++;
} /* if p_node->sub_num > 0 */ subnum = p_node->sub_num;
} /* for j=0 */ %></TBODY>
</TABLE>
<%
} /* for i=0 */
}
%>
什么意思?
asp
jsp
php
什么意思?
asp
jsp
php
=================================
哈哈,P么应该是Page的意思吧。
CSP 设计的最原始的初衷, 就是要为嵌入式开发定制的一套类似 ASP/JSP/PHP的C语言开发工具. 因为嵌入式设备(如PDA/路由器/交换机等)上用的开发语言主要是 C, 而传统的 CGI 库 clib 以及开发模式远远不能跟上现代的开发需求.
现在 CSP 的eybuild开发环境提供的PC和嵌入式设备上高效移植的开发库, 让服务器上应用和嵌入开发进行了有效统一, 使得两者上的开发变得更为容易. 同时, 优秀的跨平台的移植性也是eybuild的最主要特性之一.
这个严格来说只是C语言CGI用于WEB开发的模板技术
---------------------------------------------------
赞成!
一方面没形成一个社群,另一方面,C确实没PHP等脚本语言方便
现在我可以非常自信地告诉大家, eybuild 0.8.4版 已经对 FastCGI 有了非常完美的支持.
原有的代码, 只要中只要加上如下两句, 就可以在CGI 和 FastCGI 之间进行切换使用, 其它原代码原幅不动:#ifdef HAVE_FASTCGI
BEGIN_FASTCGI_LOOP();
#endif /* HAVE_FASTCGI */#ifdef HAVE_FASTCGI
END_FASTCGI_LOOP();
#endif /* HAVE_FASTCGI */请这里下载 eybuild 0.8.4版:
http://www.eybuild.com/develop/download/eybuild-00-08-04.tar.gz中文手册 0.4:
http://www.eybuild.com/develop/doc/manual/eyBuild_manual_ch.htm
http://www.eybuild.com/develop/doc/manual/eyBuild_manual_ch.pdf
再着写PHP扩展也可以ASP PHP JSP 都是由其他语言发展来的 俺只会PHP所以只说PHP PHP和C比起来要灵活的多 如果PHP也要求声明变量类型和长度的话 那早没人用PHP了 把C和HTML混在一起写 哎 拿牛刀杀鸡也许说的就是这个 J2EE为啥火 是有道理的 不需要关心底层良好的DB支持 灵活的可扩展 最重要的是开发周期短 这都是PHP没法比的