- 浏览: 427713 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lkun__blog:
网页打不开啊
博客搬家到http://cuiz.me -
bglmmz:
楼主怎么解决的?我用python调用ice服务,也出现此问题, ...
syscall exception: 存储空间不足,无法处理此命令 -
luliangy:
哥,你什么配置,我10W个请求10秒左右就搞定了,毫无压力,R ...
Nginx和Apache简单的并发压力测试 -
liuxuejin:
这!看的我都···········。我看代码而已。怎么
EPOLL及消息队列实现SMTP 之 青楼的故事 -
zires:
night_stalker 写道unicorn 也很好维护啊, ...
Unicorn和Passenger性能测试对比
#include <stdlib.h>
typedef struct foo
{
int x;
int y;
unsigned long ptr;
char* buffer;
}foo_t;
代码一:
考察考生对可执行文件空间结构的认识.堆,栈,初始化空间及未初始化空间的作用.
foo_t* factory(int x,int y)
{
foo_t fp;
// foo_t* fp = (foo_t*)malloc(sizeof(foo_t));
if(x>0 && x < 1024)
fp.x = x;
//fp->x = x;
if(y>0 && y < 768)
fp.y = y;
//fp->y = y;
return &fp;
//return fp;
}
代码二:
考察考生对变量及变量指针声明时是否分配可用空间的理解.
int add_buffer()
{
foo_t* fp;
/*
need malloc before use a pointer.
*/
//fp = (foo_t*)malloc(sizeof(foo_t));
fp->buffer = "hello alibaba";
printf("BUFFER => %s\n",fp->buffer);
/*
need free the malloced pointer.
*/
//free(fp);
return 0;
}
代码三:
考察考生是否对细节足够仔细.
该段代码是RSHASH算法的变形,要对输入的字符串逐个作HASH运算,但while循环中条件写错,导致死循环.
unsigned int Hash(char *str)
{
unsigned int b = 378551;
unsigned int a = 63689;
unsigned int hash = 0;
/*
str need ++
*/
while (*str)
{
hash = hash * a + (*str);
a *= b;
}
return hash;
}
代码四:
考察考生对多线程操作的理解,本题目的陷阱在于对一个多线程共享的全局变量做自加操作时,是否需要加锁.
这个题目代码较多,但结构很清晰,如果考生不能正确阅读多线程调度的代码,则不能准确定位到问题.
一个函数dobench用作并发调度,其中关键结构体如下:
typedef struct bench
{
void* func;//业务函数
void* param;//业务参数
long n;//每个线程要执行的次数
long count;//并发计数器
long num;//并发的线程总数
pthread_cond_t cond;
pthread_mutex_t mutex;
}bench_t;
该函数的调用方式如下:
pthread_t tid;
for(i = 0; i < p->num; ++i)
{
/* 通过多线程并发执行 */
if (pthread_create(&tid,NULL,dobench,p) < 0) {
syslog(LOG_ERR, "Create thread failed. - %m\n");
}
syslog(LOG_NOTICE, "Created a thread.\n");
}
b的类型为bench_t.
dobench的原型如下:
void dobench(void* param)
{
int i;
void(* func)(void* param);
struct bench * p = (struct bench *) param;
struct timeval tvStart,tvEnd;
func = p->func;
syslog(LOG_NOTICE, "Thread[%lld] dobench variables inited.\n",pthread_self());
//起始时间
gettimeofday(&tvStart,NULL);
if (p->n > 0) {
for (i=0; i < p->n; i++) {
func((void*)p->param);
}
}
else {
syslog(LOG_NOTICE, "struct bench * p->n should graet than 0\n");
}
//终止时间
gettimeofday(&tvEnd,NULL);
double dif;
dif = 1000000*(tvEnd.tv_sec-tvStart.tv_sec) + (tvEnd.tv_usec-tvStart.tv_usec);
syslog(LOG_NOTICE,"Thread[%lld] Cost => %f\n",pthread_self(),dif);
/*
加锁->计数器加一->条件变量触发->解锁
每当一个线程迭代完成指定的任务时,都要通过条件变量通知主线程.
*/
//pthread_mutex_lock(&p->mutex);
p->count++;
pthread_cond_signal(&p->cond);
//pthread_mutex_unlock(&p->mutex);
return;
}
传递给dobench的参数param是个全局变量, param->num是要启动工作的线程总数.
主线程通过param->count这个计数器来判断当前已执行完的线程数,是否等于param->num,如果等于,则表示所有的线程已经工作完成,主线程可以退出.
请排查该原型代码中的错误.
代码五:
考察考生对正则表达式的理解和运用.
正则表达式:
邮件地址:name@domain,其中name和domain部分,只能出现大小写字母,点(.)以及下划线(_),
请写出一个正则表达式能够取出name部分和domain部分分组.
举例:zheng.cuizh@gmail.com
能够取到zheng.cuizh以及gmail.com
如果地址中有非法字符,则不继续匹配.
match中的参数是答案
>> mail="zheng.cuizh@gmail.com"
=> "zheng.cuizh@gmail.com"
>> mail.match(/^([a-zA-Z0-9\.\_]*)?\@([a-zA-Z0-9\.\_]*\.[a-zA-Z0-9\.\_]*)$/)
=> #<MatchData "zheng.cuizh@gmail.com" 1:"zheng.cuizh" 2:"gmail.com">
>> mail.match(/^([a-zA-Z0-9\.\_]*)?@([a-zA-Z0-9\.\_]*\.[a-zA-Z0-9\.\_]*)$/)
=> #<MatchData "zheng.cuizh@gmail.com" 1:"zheng.cuizh" 2:"gmail.com">
>> mail.match(/^([a-zA-Z0-9\.\_]*)@([a-zA-Z0-9\.\_]*\.[a-zA-Z0-9\.\_]*)$/)
=> #<MatchData "zheng.cuizh@gmail.com" 1:"zheng.cuizh" 2:"gmail.com">
代码六:
这段代码考察考生在做字符串操作的时候是否考虑越界.
这段代码是测试rpc_call方法在执行若干次后是否出错的代码,rpc_call这个函数需要在每次调用的时候使用一个唯一的id,这个id我们通过uuid方法获得.但该段代码存在一个错误,请找出.
int rpc_call(char *);
char* uuid();
int caller()
{
char name[32];
int i = 100;
while(i--)
{
//sprintf(name,"%s",uuid);
//or
//memset(name,0,16);
strcat(name,uuid());
syslog(LOG_ERR,"current name is => %s",name);
rpc_call(name);
}
}
代码七:
下面这段代码考察考生对位运算的理解.
long generate();
unsigned long l = generate();
下面这个运算起到什么作用?
l<<1;
l>>1;
下面这个运算起到什么作用?
l&=0xfffffffe
代码八:
下面这个题目考察考生对异常处理底层实现的理解.
请使用setjmp.h中的方法实现C的异常处理.
#include <setjmp.h>
jmp_buf jb;
int ret = setjmp(jb);
switch(ret)
{
case 0:/*ok*/;break;
case 1:exc1_handler();break;
case 2:exc2_handler();break;
default:default_handler();
}
if(a==b){/*do ok*/}
else{/*raise exception*/longjmp(jb,1)}
发表评论
-
Linux标准输出看不到
2011-03-04 11:03 1305printf输出看不到,原因是stdin输出是行缓冲,要有换行 ... -
Xnix系统下某些软件自动安装脚本
2010-03-09 10:15 1403我这里把我用到的那些东东整理一下,以后再安装直接copy就好了 ... -
SNMP和开源监控的一些资料
2009-11-22 09:29 2428http://blog.chinaunix.net/u/804 ... -
Chariot Endpoint相关
2009-11-16 13:52 1827Endpoint 5.0和7.0的目录名字不同, 5.0是:/ ... -
【LVS】作者:章文嵩博士-茶话会
2009-11-09 22:10 3128有图有真相 顺便学一下LVS ^-^ ... -
iptables性能测试之--iptables规则数量对主机性能的影响:
2009-11-09 17:31 3992宿主机指XEN服务器,VM1和VM2都是XEN上的两 ... -
can't read "build.cmd": Failed to locate 'make' in path
2009-10-21 23:03 1620引用can't read "build.cmd&qu ... -
计算Linux某一进程所占用内存
2009-09-18 14:43 1803下面这个代码可以得到当前进程所占用的内存: cat /pro ... -
proc/{pid}/stat
2009-09-17 16:25 1328Linux中,某个进程消耗的CPU, 需要查看proc/{pi ... -
Epoll,Poll,Select
2009-09-16 11:56 1953先说Select: 1.Socket数量限制:该模式可操作的S ... -
Unix下跟踪一条命令的执行
2009-09-09 18:20 815strace -v ps -e 2>ps.txt -
别总以为自己很烂
2009-09-07 15:24 964我想写个Unix通用的监控, Linux上有proc很方便, ... -
Shell越写越复杂
2009-08-10 14:09 1008ps axf|grep "/usr/local/bi ... -
我的Haproxy做负载均衡的几个配置
2009-08-07 18:23 3898Normal 写道global maxconn 4096 nb ... -
我的IPVS(LVS)做负载均衡配置
2009-08-07 18:18 1239less /etc/sysconfig/ipvsadm 写道- ... -
<<LINUX内核完全注释>>阅读笔记------信号
2009-08-01 11:00 1071信号,signal.c: 信号一种软件中断。 在内核代码中通常 ... -
<<LINUX内核完全注释>>阅读笔记------进程初始化及进程调度
2009-08-01 10:53 1019进程初始化: 在内核态下运行的进程不能被其他进程抢占,内核在执 ... -
<<LINUX内核完全注释>>阅读笔记------进程数据结构
2009-08-01 10:52 1427Linux系统中一个进程可以在内核态或用户态下执行,并且分别使 ... -
这两天在玩进程通信
2009-07-17 16:54 953被研究对象:管道、信号 挺有意思。 java被局限于一个虚 ... -
如何使用Apache作为前端负载均衡器
2009-02-12 21:33 1576在某些场景中,我们需 ...
相关推荐
标题中的“草稿-----存储”可能是指一个未完成或暂存的关于数据存储技术的讨论。虽然描述为空,但我们可以从标签“源码”和“工具”中推测,这篇文章可能会涉及存储系统的源代码分析或是使用特定工具进行数据存储和...
总的来说,"C代码-C语言链表草稿"这个主题涵盖了C语言中链表数据结构的基础知识,包括链表节点的定义、链表操作(如插入和删除)以及内存管理。通过学习和实践这部分内容,开发者能够增强对C语言和数据结构的理解,...
不跑贷(v1草稿-独家)产品设计原型.rp
在这个特定的场景中,"ffmpeg渐隐渐显草稿-修改图片路径即可" 提供了一个基础的实现,帮助用户通过FFmpeg实现图片的渐隐渐现效果,这在创建影集或动态幻灯片时非常有用。下面我们将深入探讨如何使用FFmpeg来实现这一...
标题 "草稿-py处理文件-web页面展示" 暗示了这个项目是关于使用Python来处理文件,并将处理结果在Web页面上进行展示。这是一个常见的需求,特别是在数据分析、文件管理或者Web应用开发中。接下来,我们将深入探讨...
本文将深入探讨“0268 不跑贷(v1草稿-独家).rp”这一原型文件所代表的知识点,以及在实际项目开发中如何运用这些概念。 首先,“不跑贷”很可能是一款金融贷款相关的应用程序或服务,其目标可能是提供安全、便捷...
The content overview is about draft common safety requirements specified by CEN for different types of radio equipment that process data. This includes equipment connected to the Internet, child care-...
在编写长文或者编辑内容时,自动保存草稿的功能显得尤为重要,因为它可以防止由于网络问题、浏览器崩溃或用户意外关闭页面而导致的数据丢失。 在实现Ajax自动保存草稿的过程中,主要涉及以下几个关键知识点: 1. *...
标题"quic-shutdown:草稿-ietf-quic-shutdown"涉及到的是QUIC协议的一个关键特性——快速关机(QUIC Shutdown)。这是一个用于优雅地结束QUIC连接的机制,目的是在关闭连接时避免数据丢失和不必要的延迟。有序关闭是...
支持rsa-sha256算法用于签名的消息( RSASSA-PKCS1-v1_5 [ ]使用SHA-256 [ ])和SHA-256的摘要头部。 该扩展程序可在Burp Suite Professional和免费的Burp Suite社区版中使用。 用法 安装 下载文件,然后通过...
期末评估包括课堂表现、实时编程测试和笔试,分别占总成绩的20%、30%和50%,这要求学生不仅要在课堂上积极参与,还要在课后多读、多练、多利用网络资源求助,并准备足够的草稿纸进行编程练习。 总的来说,大学软件...
### 数据结构与算法Java中文概览 #### Java与面向对象...以上内容概述了《数据结构与算法java中文》的主要知识点,涵盖了从编程基础到高级数据结构与算法的全面介绍,旨在为学习者提供系统化的理论指导和实践指南。
使用HTTP / 2的WebTransport 这是单个Internet草案“使用HTTP / 2的WebTransport”的工作区域... 建立草稿 可以使用make构建草稿的格式化文本和HTML版本。 $ make 这需要您安装必要的软件。 请参阅。 贡献 请参阅。
11-发布文章-发表&存入草稿 点击发表,点击存入草稿 把文章数据提交给后台 成功:提示+跳转内容管理 Message 消息提示组件-基础用法模式: https://element.eleme.cn/#/zh-CN/component/message publish/index.vue /...
#### 四、算法结构及工作原理 ##### 8.1 流密码祖冲之算法(ZUC) - **概述**:ZUC是一种非线性反馈移位寄存器(NLFSR)型的流密码算法。 - **密钥初始化**:通过初始向量(IV)和密钥(Key)对NLFSR进行初始化。 - **密钥...
【已改】徐佳的草稿论文 -.zip 这个压缩包文件的名称表明它包含的是徐佳的一份草稿论文。通常,草稿论文是作者在完成最终版本之前进行反复修改和完善的初步版本,因此我们可以预期这篇论文可能涵盖了某个特定的学术...
自动生成草稿后,就可以自动剪辑了。 1. 添加一个媒体到轨道顺序 `草稿媒体库` -> `内容媒体库`-> `轨道片段` 2. `add_media_to_track` 会识别媒体类型,加入到对应轨道。 3. 当没有视频轨道时,创建音频轨道会先...