阅 读 文 章

Java 和 Linux

[来源:网上转载 () | 作者:网友() | 时间:2007-07-07 | 浏览:人次 ]

在Codemonks,相当多的开发工作是在 Linux 上用 Java 完成。这两个工具的组合为创建商业级质量的 Web 应用提供了一个平台,Murray 说。“在做这些项目的过程中,我们发现我们要总体上了解客户已有的应用代码”,他回忆说。locks.c (在下载得到的压缩文件中的 /developerworks/locks 目录下) 是一个代码片段,实现的是用于 Java Virtual Machine Profiler Interface (JVMPI) 的读/写锁以及大量的调试代码。

  Linux 开发人员的代表

  “在情况允许的时候,不要写特定于系统的代码”,Murray 说,而是克服困难去“写好的跨平台的代码”。受雇的 Murray 坚持认为他最大的资本永远是“写具有商业品质的代码,构建和提供网络服务,定制 OS 或内核,而且完全基于可靠的开放源代码的平台”。

  下面是一个代码片段,来自于一个跨平台的定制的 IMAP 服务器,这个服务器由 Linux 和 MacOS X 的开发人员共同开发。代码实现的是一个用来处理字符串的简单的增长缓存。这样避免了缓存溢出的问题(不要忘记那些安全漏洞),而不必要您每次做某些事情的时候重新分配空间。它是通过维护一个简单的可变长的缓存来实现的,这个缓存可以写满和清空。这个缓存已经被用于一个实验用的 IMAP 服务器,这个服务器是由一个团队紧张工作了一周完成的。

  除了一个简单的字符串缓冲区的实现之外,这段代码还实现了一个可变大小的字符串数组。它完成的是一个简单的接口,当您写完一个字符串以后,您可以标记它然后继续写下一个。此外,这样会节约空间分配,并且将比较乱的代码组织到一起。

  完整的 IMAP 服务器的代码将在今年某个时间发布。

  清单 4. 定制的 IMAP 服务器一部分

   
#ifndef HOED_BUF_H  
#define HOED_BUF_H  

typedef struct {  
char *str;  
int size;  
int length;  
int str_start;  
int max_size;  

int n_strings;  
int size_strings;  
int *str_posn;  
char **str_set;  
} hoed_buf_t;  

#if     __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)  
#define PRINTF(f, a)    __attribute__((format (printf, f, a)))  
#else  
#define PRINTF(f,a)  
#endif  

extern hoed_buf_t *hoed_buf_alloc(int init_size, int max_size);  
extern void hoed_buf_free(hoed_buf_t *);  
extern void hoed_buf_reset(hoed_buf_t *);  
extern void hoed_buf_new_string(hoed_buf_t *);  
extern char **hoed_buf_get_set(hoed_buf_t *, int *n_string);  

extern char *hoed_buf_put_char(hoed_buf_t *, char toadd);  
extern char *hoed_buf_sprintf(hoed_buf_t *, const char *format,...)  
   PRINTF(2,3);  
extern char *hoed_buf_strcat(hoed_buf_t *, const char *append);  
extern char *hoed_buf_cat_sprintf(hoed_buf_t *, const char *format, ...)  
   PRINTF(2,3);  

#endif /* HOED_BUF_H */  
  称为杀手级的 Linux 应用程序

  对Murray 来说,有两个杀手级的 Linux 应用程序:Emacs 和 Netscape Navigator。“Emacs 或许是给人印象最深而且广为应用的基于 Linux 的应用程序”,他说。“另一个是 Netscape Navigator。有一次,我们要支持20多种 UNIX,我在 Linux 上完成了所有的工作”。
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: Linux 一个 代码 char hoed_buf_t int extern Murray

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.