首先是 Javascript 算 MD5 的问题,看到这里,http://pajhome.org.uk/crypt/md…,于是就是加一个时间打点,然后跑了
<script>
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Joh…… 阅读全文
Author Archives: ZRJ
共享内存的读写
首先我们需要一个 shm_com.h
#ifndef _SHM_COM_H_
#define _SHM_COM_H_
#define TEXT_SZ 2048
struct shared_use_st {
int written_by_you;
char some_text[TEXT_SZ];
};
#endif /* _SHM_COM_H */
然后是 shm1.cpp
#include <stdio.h>
#include <stdlib.h>
#include <unis…… 阅读全文
[转]一份高质量的 Epoll 服务端代码
来自https://banu.com/blog/2/how-to…,由http://www.oschina.net/transla…提及
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <f…… 阅读全文
不同服务器端模型在并发请求下的表现差异
一般来说,服务器的模型有下面几种:
单进程单线程
多进程(一个请求对应一个进程,Apache 之类貌似就是这个)
多线程(一个请求对应一个线程,这个挺少见到的)
select / poll
epoll
它们的差别可以看这个,http://www.cnblogs.com/sharra/…
因为需要了解底层设备访问的原理,所以惯用高层应用语言的我,需要了…… 阅读全文
根据节气自动换壁纸
前些时候拿到一套壁纸,是周洁的 24 节气,觉得很是不错,于是决定用作壁纸,但是每次节气到了,都要收手工去换,自然是不想的,于是这种事情就想起了 C# 同学,操作步骤很简单,新建一个 C# 控制台项目,然后代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
…… 阅读全文
写给 10 年后的自己
见信如唔。
我是今天看了 Joey 的这个文章,写给10年前的小殷,http://www.unclejoey.com/2013/…,才想起来要记录下一些自己的所思所想的,诚如 tombkeeper 所言,我们应该记录,这样才能在以后回顾,不要怕写不出东西。
现在是 2013-2-15 0:02:48,而我坐在深圳罗湖的一个小房间里,桌前有橘黄色的灯光,我对着空…… 阅读全文
shell 俄罗斯方块
利用 bash 脚本在 shell 上跑一个俄罗斯方块的游戏,还是挺有意思的,视频讲解在这里,http://v.youku.com/v_show/id_X…,http://v.youku.com/v_show/id_X…,代码的话这里有一份,http://www.chinaunix.net/old_j…,原样照搬过来
#!/bin/bash
# Tetris Game
# 10.21.2003 xhchen<[email]xhch…… 阅读全文
二级指针删除单向链表
今晚在这里看到一篇文章,http://coolshell.cn/articles/8…,原文给的是代码片段,本着动手实践的原则,另外顺便复习一下链表,写了下代码
#include <stdio.h>
#include <stdlib.h>
typedef struct _node {
int n;
struct _node *next;
} node;
typedef int (* remove_fn)(node const *…… 阅读全文
signal 在 c99 下的差异
在写一个 minishell 的时候,需要捕捉从键盘输入的 ctrl+c 产生的 SIGINT 信号,转入自己的处理函数,代码大致如下
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <signal.h>
int shell_loop() {
setup();
COMBINE_COMMAND cmd;
while (1) {
…… 阅读全文
pipe 函数产生的文件描述符
我们知道 pipe 可以产生一对管道,用于两个进程之间的单工通信,今天在接触一个代码的时候,发现他有一个做法:为每个进程都准备读写管道的文件描述符,同时,赋初始值为 0 和 1,然后根据需要,再进行或者不进行 pipe 管道的创建,之后进行一些业务逻辑,在后面,进行一个硬编码的比较:如果该进程的管道文件描述符为 0…… 阅读全文