- 博客(158)
- 收藏
- 关注
原创 内存对齐
每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”,并且只能是2的幂。对齐规则如下:1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照 #pr
2013-07-15 11:32:57
1034
原创 errno全局变量各值含义
Linux下最常见的就是errno了,一般当发生错误时便会给全局变量errno赋值,其所有可能的值可查看linux的源码,以下是查看linux v3.6源码的结果:/usr/include/asm-generic/errno-base.h#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#d
2013-07-15 09:17:01
2209
原创 bzero等函数源代码实现
看《网络编程》,对bzero等函数的实现颇有兴趣,于是便翻看了其源代码的实现。bzero、bcopy、bcmp等函数源码如下:bzero源码:voidbzero(s1, n) void *s1; unsigned n;{ register char *t = s1; while (n != 0) { *t++ = 0; n--; }}bcopy源码如下:
2013-07-15 08:34:48
3193
转载 Linux 内核 Makefile 体系简单分析
摘自:http://blog.chinaunix.net/uid-26806098-id-3141136.html众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Makefile。在内核目录树中我们可以看到内核编译系统的顶层Makefile文件。但是如此复杂、庞大的内核源码绝不可能使用一个或几个Makefile文件来完成配置编译,而是需要一套同样复杂、庞大,且为Lin
2013-07-09 16:16:14
2041
原创 vimrc文件详解
请参考:http://vim.wikia.com/wiki/Open_vimrc_file1.什么是vimrcvimrc文件中的配置是vim启动时的配置,通常位于$HOME/.vimrc详细解释参考:help vimrc
2013-07-07 14:13:55
1025
转载 管道和xargs命令
1. stdin,stdout,stderr对于新生成的任何进程来讲,都可以使用stdin,stdout,stderr这些文件指针来访问标准输入,标准输出,错误文件。他们的类型都是FILE *,属于c运行库的类型。而内核则使用文件描述符来代表文件。STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO分别被定义为0,1,2。Dup2( srcfd , de
2013-07-06 21:43:31
842
原创 Core文件作用、设置及用法
1.Core文件简介Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文件,默认生成位置与可执行程序位于同一目录下,文件名为core.***,其中***是某一数字。2.开启或关闭Core文件的生成关闭或阻止core文件生成:$ulimit -c 0打开core文件生成
2013-07-06 19:33:17
9600
原创 录制终端操作并进行操作重现
Linux自带的script命令就可以对终端一系列的操作进行录制,并进行重放,这样便无需进行再次演示,省事很多。1.开始录制$script -t 2>time.log output.log解释:-t 选项指定输出录制的时间数据,并且以标准错误形式输出,将其重定向到time.log文件中,与后面的output.log文件配合进行操作重现。当然此地的time.log 和outpu
2013-07-05 23:29:58
761
原创 SQL Server远程配置
默认的Sql server没有开启远程的协议,所以无法远程sql server服务,只要在sql 的配置管理器里打开Named Pipes和TCP/IP协议即可。如下图:
2013-07-05 11:41:18
858
原创 Linux VNC的安装与配置
Linux VNC的安装与配置window下远程Linux的方式有很多,有命令行模式,也有图形界面模式。命令行模式最常见就是通过Putty软件了,而图形界面则可以通过VNC、XManager、Cygwin、Xming等。其中XManager为收费版,其他都可以免费使用。以上软件几乎都是基于SSH协议,所以服务端得先安装SSH服务。下面主要介绍VNC。以下步骤都在服务端进行:一.安装VN
2013-07-03 21:45:09
1107
原创 微软开源CMS框架Orchard的搭建与使用
最近可能会做一个门户网站,便开始进行充电,无意中发现了微软的开源CMS框架Orchard,感觉挺不错,便着手搭建。下面是我从搭建到使用的一系列步骤:1.Orchard安装安装方式有三种:1)通过Microsoft Web Platform Installer安装2) 通过IIS部署安装3)通过编译源代码安装其中第一种方式是最简单方式,第二种方式则主要用于生产环境,第三种方式
2013-07-02 10:39:09
3634
原创 Linux信号
通过$kill -l命令可以查看Linux中的信号及对应的整数。如下:1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV
2013-06-24 20:22:05
904
原创 获取每组最新记录
还是项目练人,带着问题来学习真的是受益匪浅。今天碰到一个问题:对表中记录分组,然后取每组最新数据。就这个问题,让我纠结了一下午,终于得以解决。SQl语句如下:Select * From TCtrl a where Time=(Select Max(Time) From TCtrl where StoreNum=a.StoreNum) order by StoreNum其中
2013-06-17 17:44:21
846
原创 systemctl作用
#systemctl is-enabled servicename.service #查询服务是否开机启动#systemctl enable xxx.service #开机运行服务#systemctl disable xxx.service #取消开机运行#systemctl start xxx.service #启动服务#systemctl stop xxx.service #停止服务
2013-06-10 03:09:37
4533
转载 Linux软连接与硬连接的区别
概念硬链接:也叫链接,即文件的引用,与被引用文件指向同一个Inode。例如,文件系统目录树上存在一个文件,该文件指向一个唯一的Inode,为该文件创建一个硬链接的话,那么该硬链接也指向同一个Inode,相当于该文件有两个名字,同时文件链接数增加1,可以使用任意一个名字访问该文件。软链接:也叫符号链接,即文件的快捷方式。软链接也是一种文件,同样占有一个Inode,创建软链接不增加链接
2013-06-09 15:20:31
889
转载 剖析system()函数
system()函数调用/bin/sh来执行参数指定的命令,/bin/sh 一般是一个软连接,指向某个具体的shell,比如bash,-c选项是告诉shell从字符串command中读取命令;在该command执行期间,SIGCHLD是被阻塞的,好比在说:hi,内核,这会不要给我送SIGCHLD信号,等我忙完再说;在该command执行期间,SIGINT和SIGQUIT是被忽略的,
2013-06-09 15:00:40
829
转载 GDB 单步调试
一、初始化输入gdb进入gdb调试环境。或者直接输入gdb + progfile来加载文件。注意该文件是使用gcc(或g++)编译得到的。为了使 gdb 正常工作, 必须使你的程序在编译时包含调试信息,编译时必须使用-g参数来。或者进入gdb环境后,通过命令file + progfile来加载需要调试的可执行文件文件。查看源代码:list [函数名][行数]设置
2013-06-02 16:59:58
1322
转载 GDB 常用调试命令
调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序
2013-06-02 16:58:01
1007
转载 SQL Server2005尚未备份数据库 尾部
sql2005还原时出现下面的错误,System.Data.SqlClient.SqlError: 尚未备份数据库 "****" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。 (Microsoft.SqlSe
2013-05-11 11:38:34
855
原创 EasyUI中文化乱码问题
最近用asp.net mvc3+easyui开发系统,在给easyui中文化时,老发现中文化的中文显示都乱码,最后发现了罪魁祸首:原来是我的web.config里system.web节下配置了这项,去掉即可。去掉前的乱码效果如下:去掉后的效果如下:
2013-04-12 20:31:21
2595
原创 反汇编工具
最近上网络编程这门课,孙老师给我们介绍了下反汇编相关工具,让我对反汇编有了一个基本的认识,算是增长见识了。大概介绍了三个工具:1.source insight此工具为查看源码比较好的工具,让阅读源代码方便了许多。2.OllyDbg此工具为动态的反汇编工具3.IDA此工具为静态的反汇编工具一般都是现用IDA分析软件的整体结构,然后再用OllyDbg分析细节。要知道
2013-04-11 16:40:43
1117
原创 ASP.NET MVC3输出html方法
asp.net mvc3定义的变量中含有html标签,然后对变量进行显示发现连带标签一起显示,而不是将标签的效果显示出来。效果如下:@{var string="string";}@string这样输出只会输出string,而不是输出h1大小的string串。为此有下列两种方法可以输出想要的效果:1.Html.Raw()eg:@{var string="string"
2013-04-11 08:58:12
1570
原创 asp.net mvc项目在iis中发布后视频不能观看
做的一个asp.net mvc项目运行时可以上传视频并且正常观看,但是发布后只能正确上传,但是不能播放,后来找了好久,终于找到了解决之法:在网站上右键——>属性——>http头——>MIME类型——>新建,然后扩展名填.flv,MIME类型填video/x-flv即可(我的视频是flv格式,如果为其他格式,则需要填写其他格式)。具体有哪些格式,请参考:http://technet.micr
2013-04-10 12:31:58
2388
转载 路径问题
/开头表示根目录, ./表示当前目录, ../上级目录, 直接用文件名不带/也表示同一目录,这些都是相对于当前文件的位置来说的,这些通用。下面是js获取文件路径://js获取项目根路径,如: http://localhost:8083/uimcardprjfunction getRootPath(){ //获取当前网址,如: http://localhost:8083/uimca
2013-04-10 12:02:41
1147
原创 查看c库函数源代码
今天突然心血来潮,想一睹c的输入输出库函数具体实现,于是便搜寻,最后得知所有的库函数源代码都位于glibc中,只需要下载glibc包,然后解压即可。具体下载网址:http://ftp.gnu.org/gnu/libc/基本输入输出函数我找了半天,最终还是找到位置了,位于glibc文件夹的stdio-common子文件夹中,下面为scanf的源代码:int__scanf (const
2013-04-07 11:26:54
11073
原创 消息队列IPC(inter process communication)小记
1.获取消息队列消息队列相关的API都在sys/msg.h库中,要创建消息队列,使用函数msgget();这个函数第一个参数为消息队列ID(此Id是给定主机上唯一的描述符或关键字),第二个参数为识别消息旗标的参数,返回值是一个句柄,和文件描述符相似,指向指定Id的消息队列。int msgget(key_t key, int msgflg);key_t值必须是一个非零的值或者是特殊符
2013-04-06 22:46:19
1343
原创 linux C线程杂记
以前学操作系统的进程和线程管理时,经常听到互斥加锁解锁之类的概念,但是几乎很少在编程中用到,今天看《gnu/linux编程》的线程这章时,对c程序中如何给变量加锁解锁有了一个大致的了解,现记录如下:互斥其实是保证线程在关键区正常执行的变量,同一时刻只能由某一进程访问,要建立一个关键区,首先得创建一个互斥变量,然后用特殊的符号为其常量初始化。互斥变量声明方法如下:pthread_mutex_
2013-04-06 12:31:17
780
原创 pthread线程创建出现undefined reference to `pthread_create' collect2: error: ld returned 1 exit status
最近看《Gnu/linux编程》线程这章时,自己便试着写了一个简单实例,然后用gcc编译,结果出现:pthread.c:(.text+0x29): undefined reference to `pthread_create'collect2: error: ld returned 1 exit status。这时便发挥google的功效,问题得以解决。方法如下:只需在用gcc编译时加上-
2013-04-06 08:55:15
9217
转载 字符编码
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与
2013-04-04 12:25:21
579
原创 C# Url传参中文乱码
项目用到ReportViewer报表,里面的参数是通过url传参给报表,参数中含有中文字符,页面显示这些参数时发现中文部分都乱码,英文字符和数字都显示正常,于是便搜寻解决之法,最终得以解决。方法如下:1.通过web.config配置在system.web节点下配置:即可。2.传递中文前进行编码,接收后进行解码先通过Server.UrlEncode(parameterName
2013-04-03 11:06:57
2501
转载 Chrome快捷键大全
Chrome窗口和标签页快捷键:Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 按住 Ctrl 键,然后点击链接 从后台在新标签页中打开链接,但您仍停留在当前标签页中 按住 Ctrl+Shift 键,然后点击链接 在新标签页中打开链接,同时切换到新打开的标签
2013-04-01 10:41:38
824
原创 网页中嵌入视频
网页中嵌入视频,我用到了jw player插件,并且采用的是js方式配置,当然也可采取其他配置方法。我的配置如下: $(document).ready(function () { var s1 = new SWFObject('@Url.Content("~/Content/mediaplayer.swf")', 'player', '250', '211', '
2013-04-01 10:16:16
738
原创 highstock range selector语言本地化
最近用到了highcharts的highstock,但是默认的range selector是英文,这自然对中国用户不是很好,所以便想着将其改为中文,于是google搜索,最后发现解决办法,问题得以解决,现分享出来供大家共同学习,方便后人少走弯路。方法如下: Highcharts.setOptions({ lang: { rangeSele
2013-03-30 10:58:54
2354
原创 发现highcharts之highstock中一个小bug
用到highstock里的清空series然后动态添加series功能,发现其中存在一个小bug,即是:我清空完所有的series后,再用addseries添加,添加完成并redraw图后发现navigator的起始时间就是1970年,网上搜了好久,没找到答案,stackoverflow上有人说这是highcharts的一个bug,已经提交。然后我又试着将前边的series初始化多组值,然
2013-03-25 15:14:48
2339
原创 highstock scrollbar样式配置
scrollbar的样式大概有以下几个参数可供配置:scrollbar: {barBackgroundColor: 'gray',barBorderRadius: 7,barBorderWidth: 0,buttonBackgroundColor: 'gray',buttonBorderWidth: 0,buttonArrowColor: 'blue',button
2013-03-25 14:28:00
2928
原创 highstock remove series and addSeries时图像显示不正常问题解决方案
remove series我最开始使用的是:for (var i = 0; i chart.series.length; i++) chart.series[i].remove(true);后来发现这样做的话,再addSeries时,图表显示的效果将会有问题,上次的series并没有全部remove掉,而且和新添加的series一起重绘,这肯定不是预期的结果,于是稍作修改
2013-03-25 09:27:23
2363
原创 highstock remove series 后动态添加series
具体效果参考我在jsFiddle的例子:http://jsfiddle.net/7pKV9/,代码如下:Remove series and Add series$(function() { $('#container').highcharts('StockChart', { scrollbar: { enabled: true
2013-03-24 21:07:01
2590
原创 linux下用gdb调试c程序
首先要用gdb调试C/C++程序的话,得在编译时将调试信息添加到可执行文件中,使用gcc的 -g参数便可以做到这点。如:gcc -g -Wall -o test test.c编译完后边要启动gdb,方法如下:$gdb test如果对gdb的命令不熟,可通过help来查询,如下:(gdb)helpgdb 的命令很多,gdb把之分成许多个种类。help命令只是例出gdb的命
2013-03-21 23:07:00
868
原创 数据库“TSupervise” 的事务日志已满问题的解决之法
写了个windows服务程序,并且设置为开机自动启动,功能为:将Acess数据库中的数据导入到SQL Server中,并且每隔10s导入一次。结果开机启动后,数据导入一直在后台进行,不知过了多久,突然发现本奇卡,后来找原因才发现数据库中数据过多,打开数据库表一看,发现有>1800w条数据记录,光日志文件都有10.5G左右,数据库文件1G左右。然后执行delete表操作,想清空表中记录,结果
2013-03-19 09:24:10
1054
原创 Online Judge计算整数的和
Problem DescriptionYour task is to calculate the sum of some integers. InputInput contains an integer N in the first line, and then N lines follow. Each line starts with a integer M, and t
2013-03-18 20:24:22
765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人