08 2017 档案

摘要:在windows下拷贝vimrc到Linux,运行vim命令后,出现错误 vim E492: Not an editor command: ^M 原因: linux的文件换行符为\n,但windows却非要把\r\n作为换行符,所以,vim在解析从windows拷贝到linux的的vimrc时,因为 阅读全文
posted @ 2017-08-31 15:59 鸭子船长 阅读(1822) 评论(0) 推荐(0) 编辑
摘要:Compiling Vim from source is actually not that difficult. Here's what you should do: First, install all the prerequisite libraries, including Git. For 阅读全文
posted @ 2017-08-31 14:26 鸭子船长 阅读(174) 评论(0) 推荐(0) 编辑
摘要:今天不小心把libc.so.6给删除了。 原系统是这样的: libc.so.6 -> lib-2.6.1.so 本想新建立一个软链接,指向 lib-2.8.so 没想到 ln 命令不能用了。 原来Linux 很多shell命令都离不开 libc.so.6。 真惨了。 幸好没有关linux. 从网上一 阅读全文
posted @ 2017-08-31 12:34 鸭子船长 阅读(545) 评论(0) 推荐(0) 编辑
摘要:到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.xz tar glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd build ../configure --prefix=/usr/local/glibc-2.14 阅读全文
posted @ 2017-08-31 12:09 鸭子船长 阅读(399) 评论(0) 推荐(0) 编辑
摘要:今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了! 当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去 阅读全文
posted @ 2017-08-31 10:04 鸭子船长 阅读(173) 评论(0) 推荐(0) 编辑
摘要:编辑.vimrc这样文件在其中加入如下两行就可以了,此法对#号提示符下的操作无效。let &termencoding=&encodingset fileencodings=utf-8,gbk,ucs-bom,cp936 1、配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统 阅读全文
posted @ 2017-08-30 20:06 鸭子船长 阅读(407) 评论(0) 推荐(0) 编辑
摘要:作者Winter 详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握 1 STL提供的Sort 算法 1.1 所有sort算法介绍 1.2 sort 中的比较函数 1.3 sort 的稳定性 1.4 全排序 1.5 局部排序 1.6 nth_element 指定元素排序 1.7 阅读全文
posted @ 2017-08-30 18:05 鸭子船长 阅读(264) 评论(0) 推荐(0) 编辑
摘要:题目:请简要介绍FIFO、LRU、LFU的含义和原理 含义: FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用 LFU:Least Frequently Used,最不经常使用 以上三者都是缓存过期策略。 原理和实现: 一、FIFO 阅读全文
posted @ 2017-08-29 11:04 鸭子船长 阅读(760) 评论(0) 推荐(0) 编辑
摘要:POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Se 阅读全文
posted @ 2017-08-28 20:20 鸭子船长 阅读(3376) 评论(0) 推荐(0) 编辑
摘要:在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。 无论是float还是double,在内存中的存储主要分成三部分,分别是: (1)符号位(Sign): 阅读全文
posted @ 2017-08-28 20:11 鸭子船长 阅读(667) 评论(0) 推荐(0) 编辑
摘要:1 #define list_entry(ptr, type, member) \ 2 ((type *)((char *)(ptr) - (unsigned long)(&((type *)0) -> member))) 解释: 1 在0这个地址看做有一个虚拟的type类型的变量,那么取一个成员再取这个成员的地址,就是这个结构体中这个成员的绝对地址 。 2 这句话的意思是获取一个结构体中... 阅读全文
posted @ 2017-08-28 11:50 鸭子船长 阅读(672) 评论(0) 推荐(0) 编辑
摘要:今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣。 int fprintf(FILE *stream,char *format,[argument]); 在此之前先区分一下:printf,sprintf,fprintf。 1,printf就是标准输出,在屏幕上打印出一段字符串来。 阅读全文
posted @ 2017-08-25 17:18 鸭子船长 阅读(524) 评论(0) 推荐(0) 编辑
摘要:1 #include <stdlib.h> 2 #include <iostream> 3 #include <string.h> 4 5 using namespace std; 6 struct key 7 { 8 void *key; 9 int size; 10 }; 11 12 struc 阅读全文
posted @ 2017-08-25 17:05 鸭子船长 阅读(203) 评论(0) 推荐(0) 编辑
摘要:简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件 阅读全文
posted @ 2017-08-25 15:42 鸭子船长 阅读(317) 评论(0) 推荐(0) 编辑
摘要:LInux下: gcc 4.47,red hat6 结论:使用[]运算符及size访问最快。 windows下: vs2015中测试: 输出: OK,从分析结果: 当然,如我们只是单纯的从前面两个结果来看,你会发现使用下标运算符的效率会比使用迭代器高一些。其实主要是在访问迭代器是要进行迭代器越位、有 阅读全文
posted @ 2017-08-23 18:13 鸭子船长 阅读(458) 评论(0) 推荐(0) 编辑
摘要:通过本文你会了解到: 1. select()原型及参数说明 2. select()应用情景 3. select()注意事项 4. select()作定时器 原型 参数说明 readfds, writefds, exceptfds为所要监听的三个描述符集: ——readfds 监听文件描述符是否可读, 阅读全文
posted @ 2017-08-23 17:39 鸭子船长 阅读(623) 评论(0) 推荐(0) 编辑
摘要:线程标识符id可以通过thread::get_id()获得,若thread obejct没有和任何线程关联则返回一个NULL的std::thread::id表示没有任何线程。当前线程若想获得自己的id可以调用std::this_thread::get_id()。 thread::id对象可以被任意复 阅读全文
posted @ 2017-08-23 16:51 鸭子船长 阅读(1541) 评论(0) 推荐(0) 编辑
摘要:(1)gcc和g++都是GNU(组织)的一个编译器。 (2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。 (3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。 阅读全文
posted @ 2017-08-23 11:24 鸭子船长 阅读(895) 评论(0) 推荐(1) 编辑
摘要:一. 使用time 命令 例如编译一个hello.c文件 #gcc hello.c -o hello 生成了hello可执行文件,此时统计该程序的运行时间便可以使用如下命令 #time ./hello 在程序运行结束后便会显示出所需时间 二. 使用clock()函数统计 CLOCKS_PER_SEC 阅读全文
posted @ 2017-08-22 17:15 鸭子船长 阅读(19527) 评论(0) 推荐(0) 编辑
摘要:这里实现的单链表,可以存储任意数据类型,支持增、删、改、查找、插入等基本操作。(本文提供的是完整代码,可能有些长。) 下面是头文件: struct single_list 这个类,遵循我们前面介绍的基本原则,不再一一细说。有几点需要提一下: 我们定义了 slist_node 作为链表节点的基类,用户 阅读全文
posted @ 2017-08-21 18:01 鸭子船长 阅读(394) 评论(0) 推荐(0) 编辑
摘要:pthread_barrier 系列函数在<pthread.h>中定义,用于多线程的同步,它包含三个函数: 那么pthread_barrier_*是用来做什么的?这三个函数又怎么配合使用呢? pthread_barrier_*其实只做且只能做一件事,就是充当栏杆(barrier意为栏杆)。形象的说就 阅读全文
posted @ 2017-08-18 15:18 鸭子船长 阅读(347) 评论(0) 推荐(0) 编辑
摘要:【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了 阅读全文
posted @ 2017-08-18 15:09 鸭子船长 阅读(485) 评论(0) 推荐(0) 编辑
摘要:命令行参数解析函数 —— getopt() getopt()函数声明如下: 1 #include <unistd.h> 2 3 int getopt(int argc, char * const argv[], const char *optstring); 4 5 extern char *opt 阅读全文
posted @ 2017-08-18 11:26 鸭子船长 阅读(271) 评论(0) 推荐(0) 编辑
摘要:信号 ( signal ) 机制是 UNIX 系统中最为古老的进程间通信机制,很多条件可以产生一个信号. 信号的产生: 1,当用户按下某些按键时,产生信号. 2,硬件异常产生信号:除数为 0 ,无效的存储访问等等.这些情况通常由硬件检测到,将其通知内核, 然后内核产生适当的信号通知进程,例如,内核对 阅读全文
posted @ 2017-08-18 11:13 鸭子船长 阅读(1134) 评论(0) 推荐(0) 编辑
摘要:pthread_kill: pthread_kill与kill有区别,是向线程发送signal。,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。 向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说 阅读全文
posted @ 2017-08-18 10:15 鸭子船长 阅读(685) 评论(0) 推荐(0) 编辑
摘要:grep -v 反向输出,即过滤掉带有grep的输出。 xargs:传递参数 阅读全文
posted @ 2017-08-15 16:27 鸭子船长 阅读(1170) 评论(0) 推荐(1) 编辑
摘要:inl 文件是内联函数的源文件。 内联函数通常在c++头文件中实现,但有的时候内联函数较多或者出于一些别的考虑(使头文件看起来更简洁等), 往往会将这部分具体定义的代码添加到INL文件中,然后在该头文件的末尾将其用#include引入。 由此也可以看到inl文件的例外一个用法的影子——模板函数、模板 阅读全文
posted @ 2017-08-14 11:18 鸭子船长 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mod 阅读全文
posted @ 2017-08-14 10:22 鸭子船长 阅读(363) 评论(0) 推荐(0) 编辑
摘要:在Linux下的GDB环境中,用p 命令查看一个void *型的变量的时候,提示为: "attempt to dereference a generic a pointer " 这里主要是指针类型不确定,强制转换指针类型后,可以使用转换后的指针类型打印元素。 阅读全文
posted @ 2017-08-11 18:03 鸭子船长 阅读(1811) 评论(0) 推荐(0) 编辑
摘要:读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排他的,读可以有多个在读,写只有唯一个在写,同时写的时候不允许读。 具有强读者同步和强写者同步两种形式 强读者同步:当写者没有进行写操作,读者就可以访问; 强写者同步:当所有写者都写完之后,才能进行读操作,读者需要最新的信息,一些事实性较高的系 阅读全文
posted @ 2017-08-11 16:48 鸭子船长 阅读(621) 评论(0) 推荐(0) 编辑
摘要:在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数。 C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed va 阅读全文
posted @ 2017-08-11 16:42 鸭子船长 阅读(195) 评论(0) 推荐(0) 编辑
摘要:directory:添加源文件目录 l src.cpp:line_num可进入文件 如:l src.cpp:10 回车自动重复上一命令 一、gdb调试基本知识a.调试器指示的是将要执行的代码行b.只有在编译时拥有调试符号(-g)的程序才能在调试时看到源码c.同一行上有多个断点时,gdb仅中断在断点号 阅读全文
posted @ 2017-08-11 10:50 鸭子船长 阅读(2312) 评论(0) 推荐(0) 编辑
摘要:1、 单元命中率:从缓存获得的请求占总请求的比率 字节命中率:从缓存得到的服务的字节量占总请求字节量的比率 2、 单元命中率与用户的响应时间相关联 字节命中率与带宽开销相关联 阅读全文
posted @ 2017-08-10 18:03 鸭子船长 阅读(663) 评论(0) 推荐(0) 编辑
摘要:1、找不到库文件的原因 库文件不存在 这种情况一般是因为所需要的包没装,只要安装相应的包就可以解决 存在而系统不知道 这种情况一般出现在自己编译软件时候 确保库文件所在的路径已加入系统,在/etc/ld.so.conf文件中设置 用命令ldconfig更新数据库 在编译一些开源软件的时候常常会遇到类 阅读全文
posted @ 2017-08-09 16:40 鸭子船长 阅读(2316) 评论(0) 推荐(0) 编辑
摘要:tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compr 阅读全文
posted @ 2017-08-09 15:56 鸭子船长 阅读(362) 评论(0) 推荐(0) 编辑
摘要:1、显示电脑以及操作系统的相关信息 uname -a 2、正在运行的内核版本 cat /proc/version 3、发行版本信息 cat /etc/issue 4、适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb lsb_release - 阅读全文
posted @ 2017-08-09 11:16 鸭子船长 阅读(179) 评论(0) 推荐(0) 编辑
摘要:在linux下我们经常用到的四个应用程序的目录是:/bin、/sbin、/usr/bin、/usr/sbin bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、ta 阅读全文
posted @ 2017-08-08 17:08 鸭子船长 阅读(272) 评论(0) 推荐(0) 编辑
摘要:1、Connection refused (111) 启动服务:rsync --daemon --config=/etc/rsyncd.conf 2、@ERROR: Unknown module 'search' 在/etc/rsyncd.conf中添加 私有ip: 在IPv4里的私有IP被定义在R 阅读全文
posted @ 2017-08-08 16:46 鸭子船长 阅读(3165) 评论(0) 推荐(0) 编辑
摘要:前言 这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代码都不懂,只是知道一昧的的去使用,终有一天,你会迷失你自己的。 C++中的类型转换分为两种: 而对于隐 阅读全文
posted @ 2017-08-08 10:18 鸭子船长 阅读(235) 评论(0) 推荐(0) 编辑
摘要:这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的。心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询。 很自然地,第一感觉就是用awk去实现,因为菜鸟我看awk看得傻了: 明显ls查看完整的文件信息,过滤掉d开头的东东(目录),取出文件大小$5和名字$9两 阅读全文
posted @ 2017-08-07 16:08 鸭子船长 阅读(841) 评论(0) 推荐(0) 编辑
摘要:1、automake编译 2、远程获取代码 3、建立软链 4、建立空文件 5、修改用户 6、查看文件,滚动log 7.查看安装包 8.查看工具信息或函数的头文件等 9.排序 10.目录下文件大小 11.查看可执行文件需要的库 12.查找库所在的包 13.查找文件路径 14.统计log数量 15.使用 阅读全文
posted @ 2017-08-07 15:51 鸭子船长 阅读(599) 评论(0) 推荐(0) 编辑
摘要:一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块 阅读全文
posted @ 2017-08-07 15:24 鸭子船长 阅读(500) 评论(0) 推荐(0) 编辑
摘要:简介 安装 使用 阅读全文
posted @ 2017-08-07 11:18 鸭子船长 阅读(1881) 评论(0) 推荐(0) 编辑
摘要:出现错误: 安装库:gperftools-devel.x86_64 阅读全文
posted @ 2017-08-04 15:30 鸭子船长 阅读(7831) 评论(0) 推荐(0) 编辑
摘要:dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)。 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲 阅读全文
posted @ 2017-08-04 11:01 鸭子船长 阅读(7317) 评论(0) 推荐(0) 编辑
摘要:比如:某文件夹下有文件:vector.cc, substr.cc 1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件。如下图所示: 2.按:"Esc"键 + “:”,并输入:vsp substr.cc 。(这里vsp跟vi/vim操作一样,路径可以自由切换。)如下图所示: 阅读全文
posted @ 2017-08-02 11:23 鸭子船长 阅读(966) 评论(0) 推荐(0) 编辑
摘要:1 消息队列 ACE消息队列由三个部分组成:消息队列(ACE_Message_Queue)、消息块(ACE_Message_Block)、数据块(ACE_Data_Block) 1.1 ACE_Data_Block:通过计数器来决定数据块释放时是否被删除。只有计数器为0时,对象才会被删除。 1.1. 阅读全文
posted @ 2017-08-01 16:12 鸭子船长 阅读(777) 评论(0) 推荐(0) 编辑
摘要:I/O向量(struct iovec)readv(2)与writev(2)函数都使用一个I/O向量的概念。这是由所包含的文件定义的: 头文件定义了struct iovc,其定义如下: struct iovec定义了一个向量元素。通常,这个结构用作一个多元素的数组。对于每一个传输的元素,指针成员iov 阅读全文
posted @ 2017-08-01 15:46 鸭子船长 阅读(1749) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示