![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 97
MultiStone
更多更新的博文教程尽在MultiStone个人独立博客:xuleilx.github.io
【大家有任何问题,请在我的个人博客留言交流】
展开
-
VS2008导入动态库
编译时出现以下错误----------------------------------------------------------------------------1>------ 已启动生成: 项目: SocketTest, 配置: Debug Win32 ------1>正在链接...1>TcpSvr.obj : error LNK2019: 无法解析的外部符号 __im转载 2011-12-18 11:07:25 · 2105 阅读 · 0 评论 -
Unix环境高级编程(2版)
1.简单实现 「ls」。#includeopendir() readdir ()closedir()2.将标准输入复制到标准输出#includen=read(STDIN_FILENO,buf,4096)write(STDOUT_FILENO,buf,n)3.运行时限制#include long sysconf(int name原创 2012-07-04 01:01:43 · 811 阅读 · 0 评论 -
C代码优化方案(未看)
1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放 的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。 对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指转载 2012-09-09 14:03:29 · 978 阅读 · 0 评论 -
进程间通信 - 命名管道实现
引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧转载 2012-09-18 14:45:25 · 1105 阅读 · 0 评论 -
64位程序设计-该使用什么编译宏呢
64位系统编译宏有点乱,整理如下:1,windows平台 _WIN32 64位和32位编译模式下均支持 _WIN64 64位编译模式下支持 _M_X64 X64的cpu支持的64位 _M_IA64 IA64的cpu支持的64位转载 2012-10-17 11:30:43 · 1255 阅读 · 0 评论 -
daemon(守护进程)
Daemon Daemon程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daem原创 2012-12-05 10:23:34 · 31740 阅读 · 2 评论 -
STDIN_FILENO的作用及与stdin 的区别
原文地址http://blog.csdn.net/yeyuangen/article/details/67819991.STDIN_FILENO的作用STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。操作系统一级提供的文件API都是以文件描述符来表示文件。转载 2012-12-04 16:57:45 · 651 阅读 · 0 评论 -
可重入函数
可重入函数求助编辑百科名片可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。原创 2012-12-24 17:17:08 · 494 阅读 · 0 评论 -
static的作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variablev转载 2012-12-13 22:23:43 · 385 阅读 · 0 评论 -
自己写的拉链法创建hash表
#include#include#define MOD 3int a[5] ={3,5,9,6,8};int n = 6;typedef struct _LINK_NODE{ int data; struct _LINK_NODE* next;}*pLINK_NODE,LINK_NODE;原创 2012-12-15 22:55:03 · 742 阅读 · 0 评论 -
corba 的c++实现(vs2005)
配置corba和vs2005结合的环境一、下载OmniORBhttp://sourceforge.net/projects/omniorb/files/VS2005下载omniORB-4.1.4-x86_win32-vs8.zip,VS2008下载omniORB-4.1.4-x86_win32-vs9.zip下载后解压到任意目录即可,本人解压后为D:/DevAssist/omniO转载 2013-01-02 13:47:12 · 1088 阅读 · 0 评论 -
彻底搞定C指针---指向指针的指针(转)
发信站: 北邮人论坛 (Fri Apr 4 11:32:54 2008), 站内 一. 回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如下图所示。 内存地址→6转载 2012-03-17 15:14:17 · 731 阅读 · 1 评论 -
预处理命令(#,##)
预处理命令--------------------------------------------------------------------------------#,## # 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如, 命令 #define to_string( s ) # s将会使编译器把以下命令原创 2013-01-06 22:36:46 · 771 阅读 · 0 评论 -
修改文件内容
思路: 1.读取一行修改一行。 × 2.利用临时文件保存修改后的内容,在函数结束的时候将临时文件替换成原文件。 〇#include "stdio.h"#include "stdlib.h"#include "string.h"#include "Windows.h"#include "iostream"u原创 2013-01-08 00:57:01 · 2337 阅读 · 0 评论 -
C文件读写函数介绍
C文件读写函数介绍(转)2010-01-28 10:351.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的文件转载 2013-01-07 01:06:04 · 584 阅读 · 0 评论 -
Windows 和 Linux 的IPC API对应表
原文出处:http://blog.csdn.net/zhengdy/article/details/5485472 Windows 和 Linux 的IPC API对应表 Table 1. Process mappingWindowsLinuxClassifi转载 2013-01-25 09:22:28 · 3864 阅读 · 0 评论 -
如何调用DLL (基于Visual C++6.0的DLL编程实现)
如何调用DLL (基于Visual C++6.0的DLL编程实现)http://www.programfan.com/article/showarticle.asp?id=2923一、前言 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上Windows操作系统中几乎所有的内容都由DLL以转载 2012-01-04 00:22:01 · 1256 阅读 · 0 评论 -
STDIN_FILENO的作用及与stdin 的区别
1.STDIN_FILENO的作用STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。操作系统一级提供的文件API都是以文件描述符来表示文件。STDIN_FILENO就是标准输入设备(一般是键盘)的文件描述符。 2.区别1)数据类型不一致:s转载 2012-07-16 21:24:43 · 732 阅读 · 0 评论 -
常识
man分册分好几本,查系统命令一般是man 1。系统调用man 2,c标准函数man 3“” 字符串‘’ 单个字符http://cache.baidu.com/c?m=9d78d513d98315fe4fece4697c61c0171f43f0642ba7d7013894cd47c9221d03506790a63a675541c4c50b305eff1e0afdf0原创 2012-05-22 00:24:22 · 559 阅读 · 0 评论 -
Hello World程序背后的故事解密(RtlUserThreadStart)
近几个月实在是太忙了,偶然想起来博客上一看,离上次写文章居然过了两个月有余,于是手痒痒想加把劲,再码点儿技术文上来^_^ 这个系列是为了挖掘出一个简单的类似Hello World程序隐藏在CRT之下的复杂性,因此在上次分析了“编译器选项和CRT”之后,今天我想再来简单分析一下从程序进程建立直到程序运行到C/C++入口函数处发生的那点儿事儿。 我们知道,在Window转载 2012-02-18 14:06:55 · 5719 阅读 · 1 评论 -
提升本程序进程优先级和权限(VC++源代码) (转)
提升本程序进程优先级和权限(VC++源代码) (转)/****************************************************************本类功能:提升本程序进程优先级和权限编写作者:Coderui编写日期:2008年03月24日联系邮箱:coderui@163.com作者博客:http://hi.baidu.com/code转载 2012-02-18 11:43:33 · 3498 阅读 · 0 评论 -
C:链表的操作,如何创建一个链表并打印
链表是一种常见的重要的数据结构,它是动态的进行内存存储分配的一种结构。 用数组存放数据时,必须事先定义固定的长度(即元素个数),但是事先难以确定有多少个元素时,则必须把数组定义的足够大,以保证成功。 无疑,这会造成内存浪费,然而,链表则没有这种缺点,它可以根据需要,动态开辟内存单元。 链表中的各个元素在内存中是可以不是连续存放的,但是要找到某一元素,必须知道它的地址,这就需转载 2012-02-18 14:11:57 · 9580 阅读 · 0 评论 -
c 进度条控件
vc 进度条控件(一)2009-07-18 17:05方法1:单线程方式。将你的任务分成多个部分,每运行一部分,就更新一下进度条。这种方法就是很烦人。方法2:双线程方式。主线程负责完成你想要的工作。副线程负责更新进度条。更新进度条可以按照计时方法,或者根据主线程完成任务的状态来更新。因此,你的主线程在完成任务时,还得用一个临界区随转载 2012-02-19 16:26:40 · 6100 阅读 · 0 评论 -
VC++中改变Static Text字体的大小
在构造函数中调用CreateFont方法,记得在头文件中加入CFONT font;申明字体的对象CEasyCase::CEasyCase(CWnd* pParent /*=NULL*/): CDialog(CEasyCase::IDD, pParent){ VERIFY(font.CreateFont( 12, //转载 2012-02-20 22:25:13 · 3086 阅读 · 0 评论 -
激活指定窗口函数
void CTmpDlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码typedef void (WINAPI *PROCSWITCHTOTHISWINDOW)(HWND,BOOL);PROCSWITCHTOTHISWINDOW SwitchToThisWindow;HWND hWnd;hWnd=::FindWindow("War原创 2012-02-21 22:54:28 · 1206 阅读 · 0 评论 -
联合(union) 和结构体の使用
联 合(union) 1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变转载 2012-03-09 01:34:01 · 1076 阅读 · 0 评论 -
CString、TCHAR*、char*转换
CString 转化为 char*view plaincopy to clipboardprint?CString strData = _T("ni hao"); int len = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL); char* szTarget =转载 2012-02-21 01:05:13 · 14207 阅读 · 1 评论 -
qsort和sort的区别
First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。函数对buf 指向的数据按升序排序。使用方法: void qsort( void*base,转载 2012-03-15 23:07:26 · 410 阅读 · 0 评论 -
你必须知道的495个C语言问题-----学习笔记
1.不需要临时变量也能交换a和b的值(3.4) a^=b^=a^=b;2.作用域限于单文件的私有函数和变量应该声明为static。原创 2012-03-06 22:57:05 · 482 阅读 · 0 评论 -
C标准函数篇
textcolor (http://baike.baidu.com/view/1081118.htm)功 能: 在文本模式中选择新的字符颜色 用 法: void textcolor(int newcolor); 参数说明:其中参数newcolor为要设置的颜色textmode (http://baike.baidu.com/view/1081126.htm)函数名:原创 2012-02-11 15:51:01 · 799 阅读 · 0 评论 -
预处理命令
预处理命令--------------------------------------------------------------------------------#,## # 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如, 命令 #define to_string( s ) # s转载 2012-03-21 14:49:59 · 533 阅读 · 0 评论 -
C知识点累积篇
1. __DATE__The compilation date of the current source file. The date is a string literal of the formMmm dd yyyy. The month nameMmm is the same as for dates generated by the library functionasctime d原创 2012-03-15 14:21:30 · 476 阅读 · 0 评论 -
#pragma pack( n )和__declspec( align(#) )
这么复杂的东西,不用中文压根说不清楚。用英文写,写了也等写火星文。现在的一些处理器,需要你的数据的内存地址必须是对齐(align)的,即使不是必须,如果你对齐的话,运行的速度也会得到提升。虽然对齐会产生的额外内存空间,但相对于这个速度的提升来说,是值得的。所谓对齐,就是地址必须能整除一个整数,这个就是对齐参数(alignment value)。合法的取值范围是1、2、4、6、16、转载 2012-05-04 10:25:21 · 716 阅读 · 1 评论 -
深刻理解Linux进程间通信(IPC)
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间转载 2012-04-21 19:38:04 · 398 阅读 · 0 评论 -
在Unix/Linux下防止二重启动(C语言)
在Unix/Linux下为了保证在同一时间内某个程序只有一个实例在运行,即防止二重启动的发生,采用的方法除了用锁定文件之外,还可以用该程序在系统运行时,在进程表中的信息来进行控制(ps命令看到的内容)。方法有两种:第一种是:用进程的command字符串进行防止二重启动的控制实现步骤:(1)定义应用程序的名的字符串变量 char EXE_NAME[255]="转载 2012-07-10 10:31:50 · 1066 阅读 · 0 评论 -
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p原文出处:http://www.cnblogs.com/rushuizhijing/archive/2011/08/26/2154737.html一、可能的组合:(1)cons转载 2013-03-12 22:16:01 · 595 阅读 · 0 评论