linux后台开发笔试题

简答题

简述linux下进程间通信方式及各自的优缺点
简述tcp通信中产生time_wait及close_wait的原因
简述linux下tcp通信常用的异步方式及各自的优缺点
简述 lsof,netstat,ipcs及tcpdump命令作用
简述linux中库函数调用和系统调用的区别
tcp通讯中,read返回字节为0,表示什么?如果服务器收到RST,socket-api会怎样告知业务程序,业务程序该如何处理?
一致性hash算法的原理是怎样的?如何利用此算法来实现服务器的容灾和扩容?
多线程服务器编程,出现踩栈的bug,如何定位?
一个工程,由main.cpp,func.h,func.cpp组成,写出一个能用的makefile;
如果要求兼容64位和32位开发环境,makefile该如何写,.cpp和.h文件需要注意什么?
画出TCP协议在连接、通讯和关闭过程中的状态变更。

编程题

实现如下的函数int SortWords(char* str);用C语言实现,对字符串str里面的单词进行排序后重组,如str输入为:”aa ee bb cee a”,输出为”a aa bb cee ee”,注意不要有内存泄露
实现linux库函数中的strncasecmp(), 不区分大小写的N个字符的比较。提示:


 - s1与s2的前N个字符匹配,返回0;s1>s2,返回1;s1<s2,返回-1 - ASCII码的值为:a(97),z(122),A(65),Z(90)
 - 字符串“AbCdEfG”与字符串“abcde”的前四个字符比较,会返回0

实现单链表反转.
参考链接http://www.nowamagic.net/librarys/veda/detail/2241
实现一个队列类。队列的应用场景为:一个生产者线程将int类型的数据入对,一个消费者线程将int类型的数据出队,尽量不使用锁。
用任意一种脚本(perl,python,php,shell等),做一个http的服务器:http服务器请求的格式为:Get http://127.0.0.1:8080?name=test,返回格式为:CallBack({errcode:0,”name”:”test”,”num”:123}).http服务器所做工作:从服务器的本地文本文件/home/tt/tt.txt中,找到匹配”test”字符串的行数

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

'''
Created on 2016/08/22
File Name:py_test.py
author: LindenTao
Description : 用任意一种脚本(perl,python,php,shell等),做一个http的服务器:
http服务器请求的格式为:Get http://127.0.0.1:8080?name=test,
返回格式为:CallBack({errcode:0,”name”:”test”,”num”:123}).
http服务器所做工作:从服务器的本地文本文件/home/tt/tt.txt中,找到匹配”test”字符串的行数
'''

import tornado.ioloop
import tornado.web
import re
import json

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        name = self.get_argument('name')
        num_line = 0

        with open('tt.txt', 'r') as f:
            # 文件迭代
            for buf_line in f:
                if re.findall(name, buf_line):
                    num_line = num_line + 1

        result = dict(errcode=0, name=name, num=num_line)
        self.write(json.dumps(result))

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8080)
    tornado.ioloop.IOLoop.current().start()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值