
c
文章平均质量分 73
ken_scott
这个作者很懒,什么都没留下…
展开
-
【测试】字节对齐
#include #include #define test_bool#ifdef test_integer #define type_t long#elif defined(test_double) #define type_t double#elif defined(test_pointer) #define type_t char *#elif def原创 2017-06-07 15:56:29 · 597 阅读 · 0 评论 -
吐槽下VS2010
今天,无意间想到用下snprintf,我记得snprintf的第二个参数是数组的大小:(回家用codeblocks确认下面代码正常)#include int main(int argc, char * argv[]){ char buffer[16]; snprintf(buffer, sizeof(buffer), "1234567890123456789")原创 2012-10-26 00:56:01 · 1686 阅读 · 0 评论 -
复试题:1000!的尾部有多少个0
以前在论坛里看过这个题,当是想:只要算下1-1000中有多少个个位数是5、0的数就可以了,坛友们也多是这么回复的,所以,我就想当然地认为自己是对的,也就没去好好地验证下这个问题谁想,今天,我就被问到这个问题。当时想当然地说:“只要算下1-1000中有多少个个位数是2、5、0的数就可以了!”,“那你怎么转换成代码呢?”,我的内心想法大概是这样子的:“个位数是5的个数:1000 % 10 / 5原创 2012-09-26 23:37:17 · 1447 阅读 · 1 评论 -
打印满足勾股定理的互素的整数a,b,c
#include using namespace std;int gcd(int a, int b){ return(0 == a ? b : gcd(b % a, a));}void pythagorean(int maxa){ for (int a = 1; a <= maxa; ++a) { int a2 = a原创 2012-07-24 21:56:36 · 2349 阅读 · 0 评论 -
rudp
lock.h:#ifndef __LOCK_H__#define __LOCK_H__#include class MutexLocker{public: MutexLocker(); ~MutexLocker(); void lock(); void unlock();private: pthread_mutex_t m_lock原创 2012-07-24 14:06:27 · 10148 阅读 · 4 评论 -
epoll实践
代码做的是回射服务客户端:#include #include #include #include #include #include const int BUFFSIZ = 4096;int connect(const char * host, const char * serv){ int connfd; int原创 2012-06-08 13:48:57 · 813 阅读 · 2 评论 -
epoll工作模式详解
我们目前的网络模型大都是epoll的,因为epoll模型会比select模型性能高很多, 尤其在大连接数的情况下,作为后台开发人员需要理解其中的原因。select/epoll的特点select的特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。但是如果连接很少的情况下, select和e转载 2012-06-06 13:38:24 · 799 阅读 · 0 评论 -
epoll使用实例说明
之前一直在讲如何epoll如何好用,但是并没有实例来演示epoll的使用,下面我们就看一个服务器端使用epoll监听大量并发链接的例子。首先看一下epoll的几个函数的介绍。1、epoll_create函数/** * @brief 该函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。转载 2012-06-06 13:43:03 · 728 阅读 · 0 评论 -
银江股份面试
昨天上午银江股份面试,坦白地说,笔试题做的很不好,看到倒数第二题就有不想做的感觉:因为这是《算法导论》的最大公共字串问题,没记错的话,要用到动态规划,运筹学的知识,难!所以,我给自己下了结论:在规定的时间内(接待人员给的是50分钟),我极可能做不出来,加上前面的SQL,文字题什么的根本不会,我估摸又没戏,所以,提前交卷了,不过面试官珊珊来迟,我在这个空档也没事,也就又写了下,正起身去取回答题卷,面原创 2012-06-06 09:38:52 · 6457 阅读 · 0 评论 -
恒生电子笔试题:LoopMove
循环移动字符串:比如 "abcdefghi" 移动2就变成 "hiabcdefg"当时实现:void LoopMove(char * str, unsigned int nsteps){ assert(NULL != str); int len = strlen(str); nsteps %= len; while (nsteps > 0) {原创 2012-05-03 22:33:50 · 3495 阅读 · 2 评论 -
UNP函数笔记十七: 客户/服务器程序设计范式
第三十章 客户/服务器程序设计范式:示例:#include "err_exit.h"#include /* * Allocate an array of "nchildren" longs in shared memory that can * be used as a counter by each child of how many clients it ser原创 2012-04-23 09:08:07 · 916 阅读 · 0 评论 -
UNP函数笔记十六: 线程
第二十六章 线程:#include int pthread_create(pthread_t * tid, const pthread_attr_t * attr, void * (*func)(void *), void * arg); success return 0, error return原创 2012-04-22 14:35:16 · 854 阅读 · 0 评论 -
一个跳出第三方代码的方法
项目中有一个代码,在数据库(otl_stream)调用open函数时,如果关闭网卡(ifdown eth0),open函数需20分钟才能返回,所以,我们需要有个超时的处理,不幸的是:otl_stream自带的超时机制对此问题无效。想到用alarm + sigsetjmp的方法。模拟测试代码:#include #include #include #include原创 2013-04-04 11:39:00 · 949 阅读 · 0 评论 -
求从0到n这n+1个整数的十进制表示中出现m的次数, 其中(9>=m>=0)
网上看到一道题:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数‘ 这里修改下题目:求从0到n这n+1个整数的十进制表示中出现m的次数, 其中(9>=m>=0)例如n为12、m为1:从0到12这些整数中包含1的数字有1、10、11和12,一共有5个1 代码如下:#include /**********************************原创 2013-04-09 00:08:14 · 1523 阅读 · 0 评论 -
调各种函数写文件的效率比较
测试代码:#ifdef _MSC_VER #include #include #include #else #include #endif#include #include #include #include #include #ifdef _MSC_VER #define OPEN(fd, file原创 2013-02-28 12:47:18 · 1222 阅读 · 0 评论 -
APUE函数笔记八: 信号
第十章 信号:0 < signo < NSIG#include void (*signal(int signo, void(*func)(int)))(int); if error return SIG_ERR, else return previous handler#include int kill(pid_t pid, int signo); pid:原创 2012-03-28 21:01:09 · 643 阅读 · 0 评论 -
ansi、utf8、utf16、utf32、unicode 编码规则资料
http://demo.netfoucs.com/csfreebird/article/details/8570015http://blog.3snews.net/space.php?uid=40122&do=blog&id=66903原创 2014-10-28 18:20:20 · 800 阅读 · 0 评论 -
windbg命令
windbg命令linux下使用ulimit -S -c unlimited命令,可以使程序崩溃时生成core文件,使用gdb exec_file core_file就可以查看崩溃的程序,接着使用bt就基本可以定位触发崩溃的代码段windows下没有这么方便,但可以使用procexp和windbg来达到相同的目的,程序崩溃后,可以打开procexp,然后在procexp中选择崩溃的程序,右原创 2014-09-14 02:18:51 · 780 阅读 · 0 评论 -
试题:Triangle
无意中看到别人博客上的这个题目题目原型:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangl原创 2014-04-03 20:18:35 · 910 阅读 · 0 评论 -
__declspec(dllimport)的作用
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。转载 2014-04-29 17:27:18 · 769 阅读 · 0 评论 -
试题: 打印格雷码
好久没做算法题了,来一个 格雷码 - 概念(百度百科):在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增计数,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变原创 2013-10-04 22:05:52 · 1508 阅读 · 0 评论 -
[common-sln]: base工程初步功能
从2013-05-18 pm 到 2013-05-25 am, 终于完成了基础库的第一个版本:我的基础库: common-v1.0common目录下有目录:bulid: Makefile和编译生成的objs文件所在的目录inc: 头文件目录,下一级是工程目录,此工程目录下包含了所有的头文件 src: 实现文件目录,下一级是工程目录,此工程目录下原创 2013-05-28 18:16:39 · 1026 阅读 · 0 评论 -
[common-sln]: base工程增加遍历目录的功能实现
base工程增加头文件:/******************************************************** * Description : functions of directory traversal * Data : 2013-06-06 14:46:16 * Author : yanrk * Email原创 2013-06-07 02:01:13 · 2985 阅读 · 0 评论 -
两个升序数组的中位数
一般情形的解法:#include double median(int arr[], int size){ if (1 == size % 2) { return(arr[size / 2]); } else { return((arr[size / 2 - 1] + arr[size / 2]) / 2.0);原创 2013-05-08 16:00:16 · 1157 阅读 · 0 评论 -
求升序数组中绝对值最小的元素
题目来源:http://blog.youkuaiyun.com/linygood/article/details/8898691自己写了下:#include #include int min_abs(int * arr, int size){ if (arr[0] >= 0) { return(arr[0]); } if (原创 2013-05-10 13:42:50 · 998 阅读 · 0 评论 -
把输入整数拆分为连续的正整数之和
题目描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。(2005年百度之星第一题)#include using namespace std;void display( int num, int min, int max)原创 2012-05-23 15:21:30 · 2376 阅读 · 0 评论 -
求整数n的二进制表达式中1的个数
题目看过不少次,写起来也不难,最近才发现还有很多我以前没有想到的优雅方案关于这个的解法,http://wenku.baidu.com/view/81dfec47be1e650e52ea99e0.html 中还有很多,不少看不懂,下面是我看得懂而且比较喜欢的:#include unsigned int get_count_1(unsigned int x){ unsig原创 2013-04-23 20:02:44 · 1111 阅读 · 0 评论 -
UNP函数笔记十三: 非阻塞式I/O
第十六章 非阻塞式I/O:示例:#include #include #include #include #include "err_exit.h"#define MAXLINE 4096char * gf_time(void){ struct timeval tv; time_t t; static char原创 2012-04-20 20:18:12 · 809 阅读 · 0 评论 -
UNP函数笔记十五: 信号驱动式I/O
第二十五章 信号驱动式I/O:示例:#include #include #include #include "err_exit.h"#include "my_signal.h"static int sockfd;#define QSIZE 8 /* size of input queue */#define MAXDG 409原创 2012-04-21 19:32:11 · 693 阅读 · 0 评论 -
APUE函数笔记十五: 高级进程间通信(部分)
第十七章 高级进程间通信(部分):#include int fattach(int filedes, const char * path); if success return 0, else error return -1#include int fdetach(const char * path); if success return 0, else error原创 2012-04-07 16:16:14 · 700 阅读 · 0 评论 -
APUE函数笔记十四: 网络IPC:套接字
第十六章: 网络IPC:套接字:#include int socket(int domain, int type, int protocol); domain: AF_INET, AF_INET6, AF_UNIX, AF_UNSPEC type: SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET, SOCK_STRE原创 2012-04-07 12:37:14 · 606 阅读 · 0 评论 -
APUE函数笔记十三: 进程间通信
第十五章 进程间通信:#include int pipe(int filedes[2]); if success return 0, else error return -1#include FILE * popen(const char * cmdstring, const char * type);int pclose(FILE * fp); if succes原创 2012-04-05 10:05:30 · 593 阅读 · 0 评论 -
简单的加解密工具
目的: 一、部分私人文件不想让别人看到, Linux下又不能用Windows上的加解密工具 (也许有现成的东西, 只是我自己不知道吧, 不过也懒得搜了) 二、最近再看APUE, 写点代码当实践与复习 (发现又开始忘了)算法: 文件字节与密钥顺序进行异或功能: 一、对指定文件加密或解密 二、对指原创 2012-03-26 05:01:57 · 773 阅读 · 0 评论 -
APUE函数笔记十二: 高级IO
第十四章 高级IO:#include int fcntl(int filedes, int cmd, ... /* struct flock * flockptr */); if error return -1 cmd: F_GETLK, F_SETLK, F_SETLKW struct flock { short l_type; /*原创 2012-04-02 14:10:32 · 704 阅读 · 0 评论 -
APUE函数笔记十: 线程控制
第十二章 线程控制:#include int pthread_attr_init(pthread_attr_t * attr); if success return 0, else return error-no, will not modify errnoint pthread_attr_destroy(pthread_attr_t * attr); if succes原创 2012-03-31 10:17:24 · 608 阅读 · 0 评论 -
APUE函数笔记九: 线程
第十一章 线程:#include int pthread_equal(pthread_t tid1, pthread_t tid2); if equal return non-zero, else return 0#include pthread_t pthread_self(void);#include int pthread_create(pthread_t * r原创 2012-03-30 00:49:05 · 584 阅读 · 0 评论 -
APUE函数笔记七: 进程关系
第九章 进程关系:#include pid_t getpgrp(void); get pgid (>0)#include pid_t getpgid(pid_t pid); getpgid(0) same as getpgid(getpid()) same as getpgrp() if error return -1#include int set原创 2012-03-25 17:57:02 · 679 阅读 · 0 评论 -
APUE函数笔记四: 系统数据文件和信息
第六章 系统数据文件和信息:#include struct passwd * getpwuid(uid_t uid); ret is a static valuablestruct passwd * getpwnam(const char * name); ret is a static valuablestruct passwd * getpwent(void);原创 2012-03-24 15:00:02 · 570 阅读 · 0 评论 -
APUE函数笔记六: 进程控制
第八章 进程控制:#include pid_t getpid(void);pid_t getppid(void);uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);#include pid_t fork(void); ret is -1 means error原创 2012-03-24 15:19:02 · 613 阅读 · 0 评论 -
APUE函数笔记二: 文件与目录
第四章 文件与目录:#include int stat(const char * restrict pathname, struct stat * restrict buf);int fstat(int filedes, struct stat * buf);int lstat(const char * restrict pathname, struct stat * restri原创 2012-03-24 14:29:27 · 647 阅读 · 0 评论