- 浏览: 153792 次
- 性别:
- 来自: 深圳
最新评论
-
lanhaitun1991:
亲,其实你这里介绍的方法有一个最大的问题:如果放入队列之后,但 ...
分布式事务 -
lp385267935:
不错 很好用~3Q
jsonlib json-->object,忽略object中没有的属性 -
xiebo1983:
http://www.sqkoo.com/show/detai ...
mysql latin1乱码 -
envy2002:
当然可以了,tomcat中源码你可以看看,只要“欺骗”过去to ...
tomcat中的长连接 -
newSaa:
问一下,可以在 tomcat 建立tcp 长连接吗?
tomcat中的长连接
文章列表
extern 的作用是起到一个链接作用!
1.简单的例子。
//包含头文件是为了声明这个函数,表示这个函数已经被定义过了,已经生产过二进制代码了。
#include <stdio.h>
int main(int argc, char **argv)
{
printf("h ...
在多线程编程中,我们用gcc -Wall -g -lpthread log.h log.c List.c List.h server.c -o server.exe编译的时候,我们会加上一个-lpthread,表示要用到gcc默认路径之外的库,但是这个库文件在哪里呢?我们可以用ldd命令来看。
比如 bard@bard-desktop:~/sharing$ ldd server.exe
linux-gate.so.1 => (0x001f7000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so ...
C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的 ...
一、为什么要使用库文件
我们在实际编程工作中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同,
实现代码也相同,也是我们所说的重复代码。比如,很多项目里都有一个用户验证的功能。
...
把上个版本一对一的聊天室,修改了一下,使其能进行一(server)对多(client)的聊天。
直接上源码:
/*
provide the function to log.
input: environment varibles, (1) LEVEL=DEBUG||WARNING||ERROE (2)LOGPATH(the log file saving path)
output: different level log file
*/
#ifndef _LOG_H_
#define _LOG_H_
#include <stdl ...
http://dsec.pku.edu.cn/~yuhj/wiki/gdb.html
这个网站介绍得极好!
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代 ...
不知不觉,在公司工作两年半以上了。在公司接触的项目非常广泛,所以接触了很多东西,拓宽了我的知识面。但是这个面必须加以控制。由于平时主要是涉及web开发,所以Java web开发技术必须过硬。但是现在IT产业变化很快,移动互联网发展及其迅猛。很多开发都是基于大公司的框架来进行,例如symbian, andrion, 苹果的SDk,等等。但是基础的操作系统的东西是不会变化的,这其中linux是开源的,所以想深入学习linux下面C语言的开发。这样不仅能加强底层的了解,还能了解一些函数式编程的思想。至于架站的工具包,更好丰富多彩,所以决定要把linux下面的东西学透。
实在不好意思,第一个版本有些问题,是局部变量和堆里面变量的区别。今天做了一下修改。代码如下。
#ifndef _LIST_H_
#define _LIST_H_
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
struct List
{
char * buffer;
char * cursor;
char * begin;
char * end;
};
// you must add struct, otherwise it will pro ...
linux 线程同步机制和java的是极其类似的。如果不太明白java多线程编程,可以参考我原先写的java多线程编程。下面我们将展现linux下如何实现生产者和消费者模型。
直接上代码吧:
#ifndef _LIST_H_
#define _LIST_H_
#include <string.h>
#include <stdio.h>
struct List
{
char buffer[10];
char * cursor;
char * begin;
char * end;
};
// you must add str ...
下面我们将上面两个线程进行同步。
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
//初始化一个mutex(互斥体).
pthread_mutex_t counter_mutex = PTHREAD_MUTEX_INITIALIZER;
//define the first thread procedue.
void * thread_1_pro(void ...
如果了解java多线程编程的话,照葫芦画瓢,是很容易理解linux下面的线程模型的。
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
//define the first thread procedure.
void * thread_1_pro(void * arg)
{
//derive current thread's id
pthread_t tid;
tid=pthread_self();
printf(" AAAAA th ...
项目中有这样一个需求。前端html页面是用UTF-8编码的,数据库也是用UTF-8编码的。字符集均为unicode。数据库中的限制一般通常如下:
director varchar2 100 导演
scriptwriter varchar2 100 编剧
compere varchar2 100 节目主持人
guest varchar2 ...
在Java里面进行socket编程是很容易的事情,为了更好地搞清楚socket运行机制,有必要了解一下linux下socket是如何运行的。由于涉及到底层的东西比较多,即使你本来很了解如何运用这些API,但究其下面层次的原理,如果不深入到源码的话,也是比较难以理解的。我本人理解的也不是很好,只能抛砖引玉了。
大概的流程如图所示:
1.服务器建立一个socket监听本机的某个端口(图中socket1)
2.客户机建立一个socket去连接服务器监听端口(如图中socketA)
3.服务器accept一个新的s ...
[置顶] clearcase merge使用方法
- 博客分类:
- 常用工具
今天使用clearcase merge的时候差点崩溃了,崩溃的原因最后再提,直接上正确的方法。
1. 找到merge的target。下图的目标点是wacos_common.
目标view为
#merge view
element * CHECKEDOUT
element * .../wacos_common/LATEST
element * /main/LATEST -mkbranch wacos_common
对应的开发view是(源,源要往目标上merge)
#dev_view
element * CHECKEDOUT
element * .. ...
于渊的《自己动手写操作系统》告诉我们如何自己写一个操作系统,当然写操作系统是个很难的事情,所以我们要慢慢来,先看看如何展示在裸机上写一个最小最小的“操作系统”,也许根本称不上操作系统。
操作系统的初 ...