linux程序设计
张小方32
这个作者很懒,什么都没留下…
展开
-
『腾讯后台开发』实习生技能要求
一、操作系统方面1. 多线程相关与线程之间同步技术熟练使用(但不局限于)以下linux APIlinux下的线程创建、等待、获取线程idint pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);int pthread_...原创 2018-08-20 23:47:39 · 4541 阅读 · 0 评论 -
浅析linux下open函数O_CLOEXEC模式和fcntl函数FD_CLOEXEC选项
关于open函数O_CLOEXEC模式,fcntl函数FD_CLOEXEC选项,总结为如下几点:1.调用open函数O_CLOEXEC模式打开的文件描述符在执行exec调用新程序中关闭,且为原子操作。2.调用open函数不使用O_CLOEXEC模式打开的文件描述符,然后调用fcntl 函数设置FD_CLOEXEC选项,效果和使用O_CLOEXEC选项open函数相同,但分别调用原创 2016-11-09 09:20:30 · 8364 阅读 · 0 评论 -
域名转ip地址编程实现
首先ip地址在编程中有两种形式,一种是十进制点分式,如192.168.2.187,另外一种是用一个32位的整数表示(ipv4)。域名转换成ip地址,首先调用函数gethostbyname,转换结果存在一个hostent结构体中。转换成功后的ip地址存放在hostent最后一个字段中:struct hostent { const char *h_name; /原创 2016-12-02 14:25:12 · 2575 阅读 · 4 评论 -
关于linux条件变量的一点思考
引入条件变量的初衷设想有这样一种应用场景:有A、B两个线程同时递增一个整型变量v,线程C在变量v是3的倍数时,输入v的值。因为涉及到多个线程同时读写同一个变量,所以肯定需要使用互斥体mutex对变量v进行保护,即同一时刻只能有且只有一个线程对v进行修改。假设A、B、C三个线程得到cpu时间片几率相等,如果不使用条件变量的话,在线程C中只能采取轮询的方式不断地去检测变量v的值是否是3的倍数。原创 2016-11-01 17:21:00 · 2220 阅读 · 5 评论 -
Shell 显示带颜色字体
Shell 显示带颜色字体 格式: echo “\033[字背景颜色;字体颜色m字符串\033[控制码” 如果单纯显示字体颜色可以固定控制码位0m。 格式: echo “\033[字背景颜色;字体颜色m字符串\033[0m”字背景颜色范围:40 - 49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色字颜色:30 - 39 30:黑原创 2016-10-19 16:33:18 · 3290 阅读 · 0 评论 -
linux nc命令相互发消息及传文件
一. 相互发消息步骤: 1. 服务器在某个端口上侦听,使用nc -l 主机ip地址 端口号,当然也可以加上-v来显示这个过程,如果不指定ip地址的话就默认是0.0.0.0,相当于INADDR_ANY。 2. 客户端通过 nc 主机ip地址 端口号 连接服务器,连接成功后,可以在任何一终端来相互发送数据了。服务器端:客户端原创 2016-11-04 18:18:23 · 34553 阅读 · 1 评论 -
编写Linux系统下Daemon程序的方法步骤
一、引言 Daemon程序是一直运行的服务端程序,又称为守护进程。 本文介绍了在Linux下编写Daemon程序的步骤,并给出了例子程序。 二、Daemon程序简介 Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的原创 2016-10-13 14:31:40 · 1766 阅读 · 0 评论 -
error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误。google了一下,是由于找不到lib这个文件。解决办法:一般我们在Linux下执行某些外部程序的时候可能会提原创 2016-10-23 13:39:31 · 700 阅读 · 0 评论 -
linux 命令行 光标移动技巧
看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动。在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作。但是事情也不是那么简单,还是需要知道“如何去做”。在单词之间跳转,使用Ctrl+左右键。Ctrl+e则跳到页尾。ctrl+k-删除当前光标后面的文字Ctrl+w和Alt+d-对于当前的单词进行删除操作,w删除光标前面的单词的字符,d则删除后面原创 2016-10-10 10:12:01 · 658 阅读 · 0 评论 -
关于EINTR
文章参见: http://www.xuebuyuan.com/1470645.htmlhttp://blog.chinaunix.net/uid-21501855-id-4490453.html人为当碰到EINTR错误的时候,有一些可以重启的系统调用要进行重启,而对于有一些系统调用是不能够重启的。例如:accept、read、write、select、和open之类的函数来说,是可以进行重启的。不原创 2016-07-28 16:47:58 · 2376 阅读 · 0 评论 -
linux spin lock与mutex效率对比与使用场景
文章参见: http://www.parallellabs.com/2010/01/31/pthreads-programming-spin-lock-vs-mutex-performance-analysis/总结 (1)Mutex适合对锁操作非常频繁的场景,并且具有更好的适应性。尽管相比spin lock它会花费更多的开销(主要是上下文切换),但是它能适合实际开发中复杂的应用场景,在保证一定原创 2016-07-13 14:35:52 · 2656 阅读 · 0 评论