C/C#及C++
zhongyhc
天行健,君子以自强不息;地势坤,君子以厚德载物
展开
-
argv和argc变量的含义
这是C语言中的命令行参数,所谓命令行参数,就是在DOS下执行命令所需要的参数,我们 学习C语言的时候,一般都是编一些小程序,输出一些数据了等等,但是如果我们编制这样 一个程序,比如编制一个程序能把一个文件的内容追加到另外一个文件中,这样我们编的程 序就需要你提供命令的后面两个文件名(和命令一起称做命令行参数) 如这个程序叫做append使用时候(在dos下敲入如下命令)如下转载 2008-04-29 14:17:00 · 1119 阅读 · 0 评论 -
一步一步学GTK+之布局
本来想接上篇把关于窗口方面的写的更详尽一点,但因为我做软件的习惯来说还暂时用不不到、我们先跳过,然后先说说窗口中的布局。跟大多数软件界面一样,一般包含标题栏、菜单栏、工具栏、状态栏和工作区等。首先,我必须要有一个初步的规划,因为是自己设计一些软件,我只需要问我自己几个问题(why/how),而不需要跟设计部进行沟通。1.Q:为什么要设计这个demo? A:初步认识GTK+的转载 2014-11-09 22:59:48 · 711 阅读 · 0 评论 -
linux内核编译步骤
linux内核编译步骤 对于linux新手来说,编译内核相对有一些难度,甚至不知道如何入手,我通过在网上收集这方面的资料,最终编译成功.现在 我归纳了一下,写出这一篇还算比较详细的步骤,希望能对各位新手有一些 帮助。 1、 准备工作(1) 整理出系统需要支持的硬件、文件系统类型以及网络协议等内容。(2) 建议用命令uname –r 查看一转载 2014-11-13 10:33:00 · 576 阅读 · 0 评论 -
Linux内核(1)——copy_to_user和copy_from_user两个函数的分析
今天在做Linux设备驱动的实验,对copy_to_user和copy_from_user两个函数的功能很不了解,在网上搜到一篇文章贴出来供参考:http://apps.hi.baidu.com/share/detail/16028954 整理一下原文: copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇转载 2014-11-13 22:06:08 · 1281 阅读 · 0 评论 -
Linux内核(5)——系统调用与内核编译实验
今天在做Linux系统调用与内核编译的实验,主要任务有两个:1)添加一个新的系统调用:mysyscall,功能仅为打印一条语句。2)编译内核。 实验步骤如下:1.在官网(www.kernel.org)上下载最新的内核压缩包,本次实验版本为:linux-2.6.36.2.tar.bz2 2.以root登录,将内核包复制到usr/src下:cp li转载 2014-11-13 22:09:07 · 684 阅读 · 0 评论 -
Linux内核(4)——grub.conf文件参数详解
原文地址:http://zouqiu168.blog.163.com/blog/static/121732462006930105025141/解读grub.conf文件 我们将来看看grub.conf文件内语句,(注:...)内的东西是我们的解读内容.# grub.conf generated by anaconda## Note that you do no转载 2014-11-13 22:08:24 · 3682 阅读 · 0 评论 -
Linux内核(2)——设备驱动实验
今天做了Linux课设关于设备驱动的实验。实验采用模块的方法编写一个可以进行简单读写的字符设备驱动,该设备可以存储一定长的字符串,写入设备即可以将字符串存入设备,读出即可以获取该字符串,并编写了测试程序对其测试。 (1)首先新建并编写了字符驱动设备chardev.c文件,文件代码如下:/**创建一个字符设备(读写)*//*必要的头文件,内核模块标准头转载 2014-11-13 22:06:43 · 698 阅读 · 0 评论 -
Linux内核(3)——make mrproper与make clean的区别
首先,这两个命令都是用于删除编译内核时产生的相关文件的。两者的区别如下:make mrproper命令会删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件,所以几乎只在第一次执行内核编译前才用这条命令(见评论)。make clean命令则是用于删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块。所以你若只想删转载 2014-11-13 22:07:44 · 586 阅读 · 0 评论 -
GRUB和LILO的区别
从普通的桌面用户到 Linux?系统管理员,大部分 Linux 用户都使用过一种名为引导加载程序的工具。此类工具的不同变种会提供不同层次的支持和功能。在很多情况下,Linux 发行版默认安装的引导加载程序并不总是适合需要;每个引导加载程序的默认设置也是如此。在本文中,Laurence Bonney 讨论了两个流行的引导加载程序 —— LILO 和 GRUB —— 的优点和缺点,并建议了很多配置,以原创 2014-11-14 10:26:25 · 921 阅读 · 0 评论 -
VirtualBox在CentOS中安装VBOXADDITIONS
在 Oracle Linux 上安装 Shared Folders对于 Oracle Database 11g,ZIP 安装文件总共有 2 GB 多。由于需要从每个来宾 VM 访问它们以安装数据库,我决定利用 Oracle VM VirtualBox 的 Shared Folders。Shared Folders 特性允许来宾 VM 访问主机文件系统中的存储,因此它允许我对每个 VM 都访问相转载 2014-11-14 17:17:47 · 677 阅读 · 0 评论 -
gtk编译makefile的编写 及“make:command not found”解决
CC=gccPROG_NAME=aINCS=SRCS=a.c#从xx.c 文件得到 xx.o 文件OBJS=${SRCS:.c=.o}#编译GTK程序时要用到的库LIBS=gtk+-3.0#---- 用户修改区域 结束CFLAGS=`pkg-config --cflags ${LIBS}` -g -WallLDFLAGS=`pkg-confi原创 2014-11-16 22:28:31 · 5461 阅读 · 0 评论 -
GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
为了适应现在越来越流行的64位系统,经常需要将代码分别编译为32位版和64位版。其次,除了需要生成debug版用于开发测试外,还需要生成release版用于发布。本文介绍了如何利用makefile条件编译来生成这些版本,而且不仅兼容Linux下的GCC,还支持MinGW、TDM-GCC等Windows下的GCC编译器。一、C程序代码 为了测试条件编译的效果,以下面这个C语言程序为例(转载 2014-11-07 16:57:56 · 995 阅读 · 0 评论 -
SMBIOS信息概述 -- DMI
先介绍 DMI 。 DMI 是英文单词 Desktop Management Interface 的缩写,也就是桌面管理界面,它含有关于系统硬件的配置信息。计算机每次启动时都对 DMI 数据进行校验,如果该数据出错或硬件有所变动,就会对机器进行检测,并把测试的数据写入 BIOS 芯片保存。所以如果我们在 BIOS 设置中禁止了 BIOS 芯片的刷新功能或者在主板使用跳线禁止了 BIOS 芯片的刷新转载 2014-12-02 11:16:26 · 2285 阅读 · 0 评论 -
Windows 下读取DMI信息的方
在Windows下读取DMI信息的方法:使用Windows自带的函数完成:GetSystemFirmwareTable():点击这里-> msdn函数详情系统要求在:Windows Vista, Windows XP Professional x64 Edition以上 1 2 3 4 5 6转载 2014-12-02 11:17:34 · 3140 阅读 · 6 评论 -
C++: string的大小写转换
将一个string转换成大写或者小写,是项目中经常需要做的事情,但string类里并没有提供这个方法。自己写个函数来实现,说起来挺简单,但做起来总让人觉得不方便。打个比方:早上起来想吃个汉堡,冰箱里有生牛肉,有面粉,也有微波炉,是可以自己做的,但是实在是太费事,没几个人愿意做。但是,打个电话给肯德基宅急送,10分钟后就有热乎乎的汉堡送上门了,大大节省了时间(时间就是金钱,你可以将时间用在更重要的开转载 2014-12-02 23:23:25 · 22673 阅读 · 0 评论 -
GTK+计算器小code
程序其实还是比较简单也比较容易理解的,前面主要在按钮的排例上有些烦琐,我写到一半给注释掉了,然后使用循环重新做的,代码量就少了许多,注释我就不去掉了大家自己看吧,这里还要注意的地方有在选择运算符时要注意第一个数字和第二个数字的清除与保留问题,否则前面的一个数字可能会与后面的数字累加,这样不仅第二个要运算的数不正确了,连运算的结果也不正确了,还有一点让我比较费解的是小数点的输入问题,如果将小数点连接转载 2014-12-08 16:58:48 · 616 阅读 · 0 评论 -
利用C++11实现一个自动注册的工厂
工厂方法是最简单地创建派生类对象的方法,也是很常用的,工厂方法内部使用switch-case根据不同的key去创建不同的派生类对象,下面是一个伪代码。Message* create(int type){ switch (type) { case MSG_PGSTATS: m = new MPGStats; break;转载 2016-01-04 13:34:14 · 605 阅读 · 1 评论 -
linux下的C语言编程(总结篇)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在Linux下面关于C语言的内容其实挺多的。不同的人关注的地方也不一样。关注系统设计的人可能更关注整个linux系统的结构;设计驱动的人可能更关注linux驱动的配置和实现;而我在这里所关注的只是linux应用层方面的内容,属于最基础的内容,当然也是最重要的内容。实际转载 2015-12-25 14:51:32 · 533 阅读 · 0 评论 -
Linux下的GTK图形界面编程
GTK(GIMP Toolkit)是一个图形用户编程的接口。它完全免费,所以用来开发自由软件或商业软件都不需要花费什么。现在很多Linux集成系统都已经将 GTK1.2版本打包进去了。包括RedHat Linux 6.0以上版本,还有中文化的Turbo Linux等等。它也越来越被普遍的应用于UNIX系统编程。 还有一个组件叫Glib,它包含转载 2014-11-09 22:57:26 · 6576 阅读 · 1 评论 -
pci-pcie总线序号分配
pci-pcie总线序号分配外围设备互连(PCI)是一种将系统中外部设备以结构化与可控制方式连接到起来的总线标准,包括系统部件连接的电气特性及行为。本章将详细讨论Linux核心对系统中的PCI总线与设备的初始化过程。图6.1 一个基于PCI的系统示意图 图6.1是一个基于PCI的系统示意图。PCI总线和PCI-转载 2014-08-23 21:27:02 · 12438 阅读 · 0 评论 -
如何访问PCI配置空间数据并操作其映射的物理内存
PC机在启动的时候,都会看到一个PCI设备清单,可以看到机器中的所有PCI设备,其实搜索PCI设备的程序并不难编,本文通过一个实例说明如何遍历PCI设备。1、了解PCI设备 PCI的含义是外设部件互连(Peripheral Component Interconnect),PCI局部总线(Local Bus)是1991年由Intel定义的,现在PCI局部总线已经成为了PC转载 2014-08-23 21:15:42 · 4258 阅读 · 0 评论 -
VC++ 安装程序制作
VC++ 安装程序制作2009-10-25 10:40当用VC++完成应用程序的编制后,如果不为它制作一个安装程序,似乎感到缺少一点什么, 你也许急于到市面找制作安装程序的工具,如"CreateInstall"、" iSetup"等,事实上,VC++6.0 的企业版已为我们提供了一套制作安装程序的工具"InstallShield for Microsoft Visu转载 2009-10-28 14:35:00 · 6711 阅读 · 2 评论 -
fflush()函数介绍
fflush 函数名: fflush 功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件 原型:int fflush(FILE *stream) 程序例: #include #include #include #include void flush(FILE *stream); int main(void)原创 2009-09-25 15:26:00 · 2157 阅读 · 0 评论 -
Shell & Wait 的程序怎么写?
可以调用 OpenProcess API 取得 Process Handle, 然后再利用 Process Handle 调用 WaitForSingleObject, 即可等待被 Shell 执行的程序执行完毕, 才继续向下执行。细节如下: 1. API 的声明: Const SYNCHRONIZE = &H100000 Const INFINITE = &HFFFFFFFF Private D原创 2011-07-15 21:52:05 · 1254 阅读 · 0 评论 -
Windows中USB设备插入的拔出和所产生的消息值
Windows中USB设备插入的拔出和所产生的消息值#消息过滤钩子 WH_MSGFILTER = (-1); #记录输入钩子 WH_JOURNALRECORD = 0; #插入消息钩子 WH_JOURNALPLAYBACK = 1; #键盘事件钩子 WH_KEYBOARD = 2; #检查消息钩子 WH_GETMESSAGE = 3; #窗口过程钩子(调用前) WH_CAL原创 2011-07-06 10:00:38 · 4610 阅读 · 0 评论 -
dos 下遍历文件目录
首先先看两个函数 函数名: findfirst, findnext 功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件 用 法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib); int findnext(struct ffblk *ffblk); 程序例:原创 2012-12-26 20:35:06 · 1849 阅读 · 0 评论 -
RegisterForComInterop 属性
RegisterForComInterop 属性指示应用程序将公开一个 COM 对象(可调用 COM 的包装),它允许 COM 对象与您的托管应用程序交互。[Visual Basic .NET]Public Property RegisterForComInterop() As Boolean[Visual Basic 6]Property Get Re原创 2011-09-13 12:40:33 · 2127 阅读 · 0 评论 -
Creating an ActiveX Control in Visual Studio 2005
Published Wed, Aug 16 2006 6:26 | Paul June There have been misconceptions on technologies upon the arrival of .Net. Many programmers believe that the arrival of .Net means the scrapping of all pr原创 2011-09-08 14:16:36 · 1012 阅读 · 0 评论 -
VB 2008下载地址
VB 2008下载地址:如果是初学者,可以用速成版,http://www.microsoft.com/express/download/#webInstall(直接下载为http://download.microsoft.com/download/3/0/2/3025EAE6-2E15-4972-972A-F5B1ED248E85/VS2008ExpressWithSP1CHSX1504735原创 2011-09-03 20:43:09 · 3344 阅读 · 0 评论 -
PCI 总线初始化
在《Linux内核修炼之道》里,文章作者对如何使用Kconfig和Makefile定位内核源码有精彩的阐述。并且该作者还在《Linux那些事儿 之 我是PCI》系列文章中对X86架构下的PCI总线和设备驱动做了很详细的分析。由于工作需要,我在此基础上分析了ARM体系结构的PCI总线驱动,并把心得和笔记整理一下,或许对日后解析其他子系统有所帮助。以下涉及到的Linux内核源码均为2.6.23版本。转载 2013-06-06 22:49:39 · 1424 阅读 · 0 评论 -
网络抓包源代码
转自:http://hi.baidu.com/wuxiaoming1733/blog/item/d2b5b738e4094bddd4622570.html在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦。现在终于好了,本文提供两种方式进行网络抓包: 1. 网络共享 + 可视化抓包工具基本原理原理比较简单,io转载 2013-06-07 10:49:53 · 3357 阅读 · 0 评论 -
PCI 总线枚举
一:前言 Pci,是Peripheral Component Interconnect的缩写,翻译成中文即为外部设备互联.与传统的总线相比.它的传输速率较高.能为用户提供动态查询pci deivce.和局部总线信息的方法,此外,它还能自动为总线提供仲裁.在近几年的发展过程中,被广泛应用于多种平台. pci协议比较复杂,关于它的详细说明,请查阅有关pci规范的资料,本文不会重复这些部份. 对于转载 2013-06-06 22:43:14 · 2220 阅读 · 0 评论 -
基于ARP欺骗的网络攻击程序源码
最近开始学WINPCAP,看了很多高手写的基于arp欺骗的抓包工具,尤其是电子科大的TOo2y师兄的《详谈调用winpcap驱动写arp多功能工具》,令我收益非浅。下面是我把这个思想改成arp攻击程序(可令目标主机断开网络连接)的一些测试。高手请略过,以免有班门弄斧之闲。 一般的arp spoof是向被欺骗主机发送ARP REPLY数据报,把其中的源IP地址置为被欺骗主机要发包去的主机地址,转载 2013-06-07 10:52:47 · 2355 阅读 · 0 评论 -
详谈调用winpcap驱动写arp多功能工具
一 winpcap驱动简介二 Packet.dll相关数据结构及函数三 T-ARP功能及原理介绍四 T-ARP主要代码分析五 T-ARP源代码一)winpcap驱动简介 winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它转载 2013-06-07 10:57:26 · 758 阅读 · 0 评论 -
ARP C++实现源代码
转自:不变hi.baidu.com/wuxiaoming1733/blog/item/f7cebd191cfeb35a43a9ad92.html#ifndef MY_ARP_CHEAT_INCLUDE_H #define MY_ARP_CHEAT_INCLUDE_H //字节对齐必须是1 #pragma pack (1) struct ethernet_head转载 2013-06-07 10:49:18 · 1610 阅读 · 0 评论 -
Configure,Makefile.am, Makefile.in, Makefile文件之间关系(转)
Configure,Makefile.am, Makefile.in, Makefile文件之间关系(转)1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] -->转载 2014-04-02 17:42:40 · 650 阅读 · 0 评论 -
autotools 使用流程
在较大项目中, 如果手动维护Makefile, 那将是一件复杂并痛苦的事情. 那么, 有没有一种轻松的手段生成Makefile呢? autotools系列工具正是在这样的呼声中诞生的. 它只需用户输入简单的目标文件, 依赖文件, 文件目录等就可以轻松地生成Makefile了. 另外, 这些工具还可以完成系统配置信息的收集, 从而可以方便地处理各种移植性问题.autotools是系列工具,转载 2014-04-02 17:44:04 · 559 阅读 · 0 评论 -
【转】初识linux平台C++开发
【转】初识linux平台C++开发最近工作中,需要在linux上开发C++程序。有了下面的问题。1,linux平台C++开发和win32 C++开发有什么区别呢?2,除了C++语言,数据结构等必须的知识外,还需要些了解什么呢?3,如何在linux平台开发C++应用程序呢?相信许多之前没有开发过linux平台程序的人也会有这些疑惑。下面,就自身的学习和接触,简单介绍一下。转载 2014-06-11 09:56:25 · 657 阅读 · 0 评论 -
总结3个我认为比较好的算法
闲来无事总结3个我认为比较好的算法,很简单,但有趣。我们应该学会欣赏简单的东西,拒绝钻进复杂的东西里面,比如股市... 这三个算法分别为大数乘法,求交集算法,将一个数拆成连续整数和算法以及8位倒置算法。这些算法都非出自本人,但是本人实现了一个。 1.大数乘法:这个算法很著名,它可以突破计算机的限制从而计算一些很大的数,它的效率是重要的,但本文仅仅从逻辑角度来分析,先不分析时间空间复转载 2016-06-22 14:50:34 · 1376 阅读 · 0 评论