C
文章平均质量分 72
凌风探梅
这个作者很懒,什么都没留下…
展开
-
静态库和动态库
A.1 — Static and dynamic librariesA library is a package of code that is meant to be reused by many programs. Typically, a C++ library comes in two pieces:A header file that defines the functionality the library is exposing (offering) to the programs us转载 2021-08-13 19:40:11 · 609 阅读 · 0 评论 -
Linux下的静态库、动态库和动态加载库
Linux库类型Linux下可以创建两种类型的库:静态库(.a): 在链接期间被应用程序直接链接进可执行文件动态链接库(.so): 动态库还分为两种用法: a) 应用程序运行期间链接动态库,但是在编译期间声明动态库的存在,也就是说这种动态库必须在编译时对编译器可见,但编译器却不将此种库编译进可执行文件; b) 在运行期间,动态加载和卸载的库,使用动态加载方法加载。这种库的形式跟动态链接转载 2016-08-12 23:13:26 · 1017 阅读 · 0 评论 -
Linux环境多线程编程基础设施
Linux环境多线程编程基础设施 来源:Yebangyu本文介绍多线程环境下并行编程的基础设施。主要包括:Volatile__threadMemory Barrier__sync_synchronizevolatile编译器有时候为了优化性能,会将一些变量的值缓存到寄存器中,因此如果编译器发现该变量的值没有改变的话,将从寄存器里读出该值,这样可以避免内存访转载 2016-08-12 23:15:26 · 599 阅读 · 0 评论 -
Linux进程间通信中的文件和文件锁
Linux进程间通信中的文件和文件锁 来源:穷佐罗的Linux书前言使用文件进行进程间通信应该是最先学会的一种IPC方式。任何编程语言中,文件IO都是很重要的知识,所以使用文件进行进程间通信就成了很自然被学会的一种手段。考虑到系统对文件本身存在缓存机制,使用文件进行IPC的效率在某些多读少写的情况下并不低下。但是大家似乎经常忘记IPC的机制可以包括“文件”这一选项。我们首先转载 2016-08-12 23:17:07 · 1410 阅读 · 0 评论 -
Linux 下的五种 IO 模型
Linux 下的五种 IO 模型来源:decaywood's Blog概念说明用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操转载 2016-08-12 23:17:56 · 533 阅读 · 0 评论 -
Linux的进程间通信-消息队列
Linux的进程间通信-消息队列微博ID:orroz微信公众号:Linux系统技术前言Linux系统给我们提供了一种可以发送格式化数据流的通信手段,这就是消息队列。使用消息队列无疑在某些场景的应用下可以大大减少工作量,相同的工作如果使用共享内存,除了需要自己手工构造一个可能不够高效的队列外,我们还要自己处理竞争条件和临界区代码。而内核给我们提供的消息队列转载 2016-09-20 11:26:53 · 1574 阅读 · 0 评论 -
Linux下的静态库、动态库和动态加载库
from: http://www.techug.com/linux-static-lib-dynamic-lib库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从Linux的角度浅谈Linux下的静态库、动态库和动态加载库。Linux库类型Linux下可以创建两种类型的库:静态库(.a): 在链接期间被应用程序直接链接进可执行文件动态链接库转载 2016-09-21 08:36:38 · 573 阅读 · 0 评论 -
Linux五种IO模型性能分析
转载:http://blog.csdn.net/jay900323/article/details/18141217 Linux五种IO模型性能分析 目录(?)[-]概念理解Linux下的五种IO模型阻塞IO模型非阻塞IO模型 IO复用模型信号驱动IO异步IO模型个IO模型的比较selectpollepoll简介1. 概念理解转载 2016-09-21 16:31:48 · 912 阅读 · 0 评论 -
坚持完成这套学习手册,你就可以去 Google 面试了
from: http://geek.csdn.net/news/detail/107064本文为掘金投稿,译文出自:掘金翻译计划原文地址:Google Interview University原文作者:John Washam译者:Aleen,Newton,bobmayuze,Jaeger,sqrthree友情提醒:文章较长,需耐心阅读。这是?这是我为了从 Web 开发者(自学、转载 2016-10-13 08:55:36 · 1080 阅读 · 0 评论 -
用GDB调试程序
from: http://blog.csdn.net/kipdoudou/article/details/51747230?ref=myread本文总结自《用GDB调试程序》一文和网上的一些博客文章,其中加上了自己的一些注释GDB概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNI转载 2016-06-28 12:46:22 · 921 阅读 · 0 评论 -
mt19937 随机数
一下内容整理自网络资源:我们讲的随机数其实暗指伪随机数。不少朋友可能想到C语言的rand(),可惜这个函数产生的随机数随机性非常差,而且速度很慢,相信几乎不能胜任一般的应用。古老的LCG(linear congruential generator)代表了最好的伪随机数产生器算法。主要原因是容易理解,容易实现,而且速度快。这种算法数学上基于X(n+1) = (a * X(n) + c原创 2016-12-27 11:09:33 · 13445 阅读 · 0 评论 -
Clang
FROM: https://wiki.gentoo.org/wiki/ClangJump to: contentGet Gentoo!gentoo.org sitesgentoo.orgWikiBugsForumsPackagesOverlaysPlanetArchivesSourcesInfra StatusWiki转载 2015-06-09 08:52:40 · 1437 阅读 · 0 评论 -
20个正则表达式
from:http://www.jianshu.com/p/e7bb97218946正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^转载 2017-02-09 08:52:28 · 825 阅读 · 0 评论 -
论「版本号」的正确使用方式
from: 论「版本号」的正确使用方式 版本号广泛运用于开发的各种场景:NPM 包的版本定义、对 NPM 包的特定版本的依赖指定、git 的 daily 版本号分支等等。面对如此多的场景,版本号的命名却存在很大问题。举些例子:开始写一个新项目 / 模块时,不管三七二十一,都从0.0.1起版本,直到项目不再维护时,版本还停留在0.0.48,前两位永远都是0。API 变化转载 2017-11-06 23:54:22 · 922 阅读 · 0 评论 -
C语言中控制printf的打印颜色实例及vt100的控制符
C语言中控制printf的打印颜色实例及vt100的控制符文档 收藏转自:http://blog.csdn.net/evimacsl/archive/2010/01/18/5206836.aspx 为了给printf着色方便, 我们可以定义一些宏: view plain copyto clipboard print ?#defineNONE转载 2017-11-17 19:18:59 · 1752 阅读 · 1 评论 -
SHA-256算法实现
from: http://blog.csdn.net/lwanttowin/article/details/53726450SHA-256算法实现SHA-256 算法输入报文的最大长度不超过2^64 bit,输入按512-bit 分组进行处理,产生 的输出是一个256-bit 的报文摘要。该算法处理包括以下几步: STEP1:附加填充比特。对报文进行填充转载 2017-11-30 13:52:41 · 9554 阅读 · 0 评论 -
跨平台动态静态库生成
windows1) Microsoft Visual C++ Static and Dynamic Libraries https://www.codeproject.com/Articles/85391/Microsoft-Visual-C-Static-and-Dynamic-Libraries2) How to create and use DLL in C++ h...原创 2018-07-11 10:57:21 · 506 阅读 · 0 评论 -
#ifndef 与 #program once 的区别
来自:http://blog.csdn.net/hkx1n/article/details/4313357为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE转载 2016-09-03 20:45:49 · 4472 阅读 · 0 评论 -
Linux 内核里的“智能指针”
Linux 内核里的“智能指针”from: http://begeek.cn/post/7889.html?ref=myread众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异常。现代的C/C++类库一般会提供智能指针来作为内存管理的折中方案,比如STL的auto_ptr,Boost的Sma转载 2016-08-11 08:52:49 · 559 阅读 · 0 评论 -
C\C++网络编程总结
from: http://www.58maisui.com/2016/08/30/221/?ref=myread网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。网络通信中最重要的就是网络通转载 2016-08-30 10:20:42 · 3548 阅读 · 1 评论 -
glibc(ptmalloc)内存暴增问题解决
from:http://blog.chinaunix.net/uid-18770639-id-3385860.html点击(此处)折叠或打开#include stdio.h>#include stdlib.h>#include string.h>int main(){ int alloc_time = 4000; ch转载 2015-02-05 17:50:51 · 1950 阅读 · 0 评论 -
fseek获取大于4G的文件大小的问题
最近在获取文件大小上遇到了问题,因为这到处找问题,最后才发现原来是在获取文件大小的时候出现了问题。言归正传:以前获取文件大小的时候是这么做的: fseek(fp,0,SEEK_END); _length=ftell(fp); fseek( fp, 0, SEEK_SET);这个样子正常情况下是没问题的,但是在读取大于3、4G的时候就出现读错的情况,要么是-1,要么是_转载 2015-06-23 23:30:50 · 4719 阅读 · 0 评论 -
32位和64位系统区别及int字节数
FROM:http://www.cnblogs.com/lovevivi/p/3334369.html32位和64位系统区别及int字节数一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统转载 2015-06-08 15:24:47 · 1750 阅读 · 0 评论 -
如何在ubuntu14.04(64位)编译运行32位程序
来源:http://andycoder.me/fix-32bug-under-ubuntu1404/缘起我之前是ubuntu12.04(32bit),在一次手贱的apt-getremove之后呵呵了,大家都懂的..T_T,恰逢最近ubuntu14,04新鲜出炉,于是down了一个Ubuntu14.04(64bit)的iso安装玩玩(之前是因为没没注意,所以才装的ubuntu12,0转载 2015-09-07 14:46:31 · 1699 阅读 · 1 评论 -
20 issues of porting C++ code on the 64-bit platform
from: http://www.viva64.com/en/a/0004/20 issues of porting C++ code on the 64-bit platformAbstractProgram errors occurring while porting C++ code from 32-bit platforms on 64-bit ones are o转载 2015-10-26 17:46:34 · 1732 阅读 · 0 评论 -
#pragma 预处理指令详解
关闭jx_kingwei的专栏碧海潮生的小屋目录视图摘要视图订阅学院APP首次下载,可得50C币! 有奖试读—增长黑客,创业公司必知的“黑科技” 免费学技术,就是如此任性 CSDN 2015博客之星评选 感恩分享#pragma 预处理指令详解标签: 编译器alig转载 2015-12-10 11:53:44 · 709 阅读 · 0 评论 -
如何产生正态分布的随机数?
如何产生正态分布的随机数?添加评论 分享按投票排序按时间排序28 个回答86赞同反对,不会显示你的姓名Milo Yip,游戏程序员、《游戏引擎架构》译者Porphyah、熊墩子就是xob、任路遥 等人赞同我为了这个问题做了个开源项目 miloyip/n转载 2016-03-30 13:36:55 · 9315 阅读 · 0 评论 -
大端(Big Endian)与小端(Little Endian)详解
大端(Big Endian)与小端(Little Endian)简介///////////////////////////////////////////////////////1. 你从哪里来?端模式(Endian)的这个词出自JonathanSwift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为BigEndian,从尖头开始转载 2016-04-02 12:25:56 · 16247 阅读 · 1 评论 -
2016年,C语言该怎样写
导语:你的C语言知识可能该更新了。每个人在学习C语言之后,知识往往停滞不前,从开始学习它的那年起积攒起不同观点。本文将告诉你现代C语言该怎么写。转载 2016-03-29 08:50:23 · 828 阅读 · 0 评论 -
聊聊IO多路复用之select、poll、epoll详解
聊聊IO多路复用之select、poll、epoll详解2016/04/22 · IT技术 · 1 评论 · epoll, IO多路复用, poll, select分享到:0本文作者: 伯乐在线 - 陶邦仁 。未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者。IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程转载 2016-04-29 17:33:28 · 632 阅读 · 0 评论 -
聊聊 Linux 中的五种 IO 模型
聊聊 Linux 中的五种 IO 模型2016/04/21 · IT技术 · 8 评论 · iO, 同步, 异步, 阻塞, 非阻塞分享到:0本文作者: 伯乐在线 - 陶邦仁 。未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者。上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的转载 2016-04-29 17:34:06 · 937 阅读 · 0 评论 -
随机数的实现原理
http://en.wikipedia.org/wiki/Random_number_generation The GLIBC random number generator讲了GLIBC中random()函数的实现原理,并给出了一段代码: ?12345678910转载 2016-04-25 09:47:42 · 572 阅读 · 0 评论 -
如何生成符合高斯分布的数据集
如何生成符合高斯分布的数据集发表于2年前(2014-10-11 21:53) 阅读(398) | 评论(0) 0人收藏此文章, 我要收藏赞0在网上搜了下,维基百科中给了多种方法。 http://en.wikipedia.org/wiki/Normal_distribution#Generating_values_from_normal_distrib转载 2016-04-25 09:50:30 · 6030 阅读 · 0 评论 -
C语言中的static 详细分析
google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果转载 2016-06-28 12:49:17 · 693 阅读 · 0 评论 -
C/C++中static关键字详解
C/C++中static关键字详解 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用转载 2016-06-28 12:49:37 · 465 阅读 · 0 评论 -
linux stat函数讲解
stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误代码存于er转载 2016-07-23 15:48:38 · 1623 阅读 · 0 评论 -
如何实现一个malloc
http://blog.codinglabs.org/articles/a-malloc-tutorial.html任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,ma转载 2015-01-15 14:59:03 · 723 阅读 · 0 评论