- 博客(41)
- 收藏
- 关注
转载 VIM vs VS:关公战秦琼
感谢程序员老头的投递作为程序员,我们应该对开发环境和工具软件有着严肃的态度,真正弄明白各类工具的用法和用途,好歹这些是我们吃饭的家伙,是不是?不会使用各种开发工具的程序员,不是个好程序员:你拖了团队的后腿,减少了大家的工具选项,降低了团队的开发水准。另一方面,不知道该在什么项目中采用什么开发工具的,也不是好 的team leader,眼界太窄,更可能影响开发的成败。强大的开发工具并不是在各方面
2012-05-05 10:51:22
2671
原创 字符集,编码
http://hi.baidu.com/cubeking/blog/item/8c2525b5e706dbe530add104.html http://baike.baidu.com/view/15482.htm http://apps.hi.baidu.com/share/detail/36907170http://wenku.baidu.com/view/ab2248
2011-06-04 19:57:00
3945
原创 GCC笔记
<br /> <br />gcc -Wall hello.c -o hello<br />-o output 没有则产生a.out程序<br />-Wall waring all 产生警告
2011-04-24 17:13:00
530
原创 安装vimgdb时用到的命令
<br />查看系统支持的shell : more etc/shells<br />查看系统默认的shell: echo $SHELL<br /> <br /> <br />bsh怎么用当前路径作提示符:<br />编辑你的~/.bashrc文件,加入一行:<br /><br />export PS1="[/u@/h /`pwd/`]$" <br />注解:<br />S1的参数设置<br />在fc中<br />默认的PS1="[/u@/h /W]/$",其中/W就是路径的设置选项,大写的W是简介模式,小
2011-04-24 15:59:00
472
原创 网络编程四
5.listen函数两个作用:一.客户端中调用listen函数,将未连接的套接口转换为被动套接口,什么是未连接套接口=调用connect函数外的套接口;实现TCP状态转换 CLOSE-->LISTEN;二.指定内核为此套接口排队的最大连接数内核维护两个队列:未完成队列,以完成队列未完成队列是为完成三路握手的分节,以完成队列是完成三路握手的分节所在的队列,内核要把已完成的分节通过accept函数给服务器进程;图4.6 4.7;如果已完成队列是空,则accept函数睡眠(accept阻塞模式);listen的包
2011-04-11 14:45:00
543
原创 网络编程三
1.套接口的地址结构确保了进程与内核之间的通讯2.套接口的地址结构中保存地址值的是二进制,inet_pton ,inet_ntop 函数用于地址的文本表达式和二进制之间的转换3.每个协议族都有自己的地址结构 以sockaddr_开头,后面加协议族后缀,网际协议族的地址结构sockaddr_in4.结构不参与通讯5.进程到内核的函数,内核到进程的函数6.字节排序函数来由:不同系统字节排序方式不一样,大端或小端,套接口地址结构中某些成员按网络字节序维护,所以需要转换htons,h
2011-04-08 16:28:00
1031
原创 网络编程二
TCP/UDP 处于传输层,IP处于网络层,网络层下面是数据链路层,传输层上面是应用层;TCP/UDP 意义区别:TCP:精致 , 可靠字节流协议; 无记录边界;要求对方返回确认,RTT机制估算对方返回时间,序列号防重复,通告窗口告之 对方能发送多少数组, 防止溢出,UDP:简单,不可靠数据包协议;有一定长度;TCP连接的建立于终止,用来理解connect,accept,close函数;三路握手: 服务器端堵塞在accept函数,客户端堵塞在connect函数---》客户发SYN分节J 到服务端,服务端
2011-04-07 10:05:00
448
原创 C语言面试题大汇总
<br /> 4. static有什么用途?(请至少说明两种)<br />1.限制变量的作用域<br />2.设置变量的存储域<br />7. 引用与指针有什么区别?<br />1) 引用必须被初始化,指针不必。<br />2) 引用初始化以后不能被改变,指针可以改变所指的对象。<br />2) 不存在指向空值的引用,但是存在指向空值的指针。<br /><br />8. 描述实时系统的基本特性<br />在特定时间内完成特定的任务,实时性与可靠性<br />9. 全局变量和局部变量在内存中是否有区别?如果有
2011-04-06 17:34:00
1077
转载 函数指针传递和全局指针的测试
#include #define MAXNODE 10int *c;void test1(int **b){ *b=new int[MAXNODE]; }void test2(){ c=new int[MAXNODE];}void main(){ int *a; int i=0; test1(&a); test2(); for(i=0;i { c[i]=i; a[i]=i+1; } for(i=0;i printf("c[i]=%d ",c[i]); printf("/n"); for(i=0;i
2011-04-06 17:29:00
406
转载 函数指针和指针函数
感谢原文:http://lionwq.spaces.eepw.com.cn/articles/article/item/18258 【函数指针】 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号
2011-04-06 17:22:00
436
转载 C语言缺陷与陷阱(笔记)
<br /> C语言缺陷与陷阱(笔记)C语言像一把雕刻刀,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C会伤到那些不能掌握它的人。本文介绍C语言伤害粗心的人的方法,以及如何避免伤害。第一部分研究了当程序被划分为记号时会发生的问题。第二部分继续研究了当程序的记号被编译器组合为声明、表达式和语句时会出现的问题。第三部分研究了由多个部分组成、分别编译并绑定到一起的C程序。第四部分处理了概念上的误解:当一个程序具体执行时会发生的事情。第五部分研究了我们的程序和它们所使用的常用库之间的关系。在第六部分中,我们
2011-04-06 17:19:00
756
转载 C语言缺陷与陷阱(笔记)
<br /> C语言缺陷与陷阱(笔记)C语言像一把雕刻刀,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C会伤到那些不能掌握它的人。本文介绍C语言伤害粗心的人的方法,以及如何避免伤害。第一部分研究了当程序被划分为记号时会发生的问题。第二部分继续研究了当程序的记号被编译器组合为声明、表达式和语句时会出现的问题。第三部分研究了由多个部分组成、分别编译并绑定到一起的C程序。第四部分处理了概念上的误解:当一个程序具体执行时会发生的事情。第五部分研究了我们的程序和它们所使用的常用库之间的关系。在第六部分中,我们
2011-04-06 17:17:00
731
原创 c语言全局变量和局部变量
1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用'::'局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那
2011-04-06 17:13:00
549
原创 C语言函数入栈顺序与可变参数函数
C语言真是太深奥了,越学越觉得很多东西都不会!前段时间面试栽倒的一个问题:C函数入栈顺序下面先摘录一些:================================================C/C++函数调用约定与函数名称修饰规则探讨 使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有 问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象通常是出现在C和C++的代码混合使用的
2011-04-06 17:12:00
724
原创 Unix编程常见问题解答
<br />关于这篇“常见问题解答”<br />************************<br /><br />这篇“常见问题解答” 由Patrick Horgan自一九九六年五月开始起草;因其历经<br />数月未复更新,我从而接手编辑。我已经将其内容稍做重新安排并加入一些新的内<br />容;我仍然认为它仍处于“有待开发建设”中。<br /><br />请将批评,建议,增补,更正或其它意见发给维护者,电子邮件地址:<br />andrew@erlenstar.demon.co.uk<br /><
2011-04-06 17:08:00
1392
原创 linux c/网络/网络编程面试题收集
1.下列程序在32位linux或unix中的结果是什么? func(char *str){ printf("%d",sizeof(str)); printf("%d",strlen(str));} main(){ char a[]="123456789"; printf("%d",sizeof(a)); func(a);}答: 10 4 9网络/网络编程部份:1、connect方法会阻塞,请问有什么方法可以避免其长时间阻塞?答:最通常的方法最有效的是加定时器;也可以采用
2011-04-06 17:03:00
1091
原创 网络编程一
图1.3 客户端与服务端使用tcp协议在同一个以太网中通讯客户端程序:socket函数 创建网际套接流字接口 AF_INET SOCK_STREAM#define 定义常数,编译时确定const 定义常量 运行初始化后确定网际套接口地址结构 sockaddr_in地址族 servaddr.sin_family 主机到网络短整数 htons表达式到数值 inet_pton 点分十进制到网络字节序通用套接口地址结构 sockaddrtpc是无记录边界字接流协议服务器返回值的最后有/r/n协议数据单元
2011-04-02 16:32:00
409
原创 完成strcpy函数的功能//传入的指针可以使用数组的方式赋值
<br />int<br />main(....)<br />{<br />char in[128]={"dddd"};<br />char out[128]={0};<br />my_strcpy(.....)<br /> <br />}<br /> <br />int my_strcpy(char *out,char *in)<br />{<br /> int i;<br /> int len;<br /> <br /> len=strlen(in);<br
2011-04-01 14:11:00
1065
原创 vim 一屏分隔窗口
<br /><br />一直觉得vim分屏好酷,可惜我不会,今天在网上查了查,一实践还真不赖,拿出来分享了。<br />:new,:spilt 水平分屏<br />:vsplit 垂直分屏<br />:only 取消分屏<br />>1.Ctrl+W,然后马上来个n<br />Ctrl+w,再一个c,是关闭当前的窗口<br />> 2.如何split horizontally?<br />Ctrl + w, s<br />split vertically<br />Ctrl + w, v<br />> 3.
2011-03-28 10:54:00
4757
原创 设置vim语法高亮显示和自动缩进
<br />设置vim语法高亮显示和自动缩进 <br /> 二、接下来设置vim的配置文件<br /> 1、配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。<br /> <br />2、设置语法高亮显示<br />1) 打开vimrc,添加以下语句来使得语法高亮显
2011-03-28 10:53:00
858
转载 vim用户手册USR_12
<br />USR_12<br />*usr_12.txt* For Vim version 6.3. 最近更新:2004年6月<br /><br /> Vim用户手册 - Bram Moolenaar<br /> (译者:Nek_in http://vimcdoc.sf.net)<br /><br /> 小窍门<br /><br /><br />通过组合一些命令,你可以
2011-03-28 10:43:00
477
转载 vim 用户手册USR_11
<br />vim用户手册(完全版)USR_11<br />*usr_11.txt* For Vim version 6.2. 最后修改时间:2003年4月9日<br /><br /> Vim 用户手册 - by Bram Moolenaar<br /> (译者:Nek_in http://vimcdoc.sf.net)<br /><br /> 从崩溃中恢复<br /><br
2011-03-28 10:42:00
991
原创 vim 将文件从dos格式转换到unix格式
<br />dos格式文件传输到unix系统时,会在每行的结尾多一个^M(/r),当然也有可能看不到。但是在vim的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC]。因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是<br /> <br />vim dos.txt<br />:set fileformat=uni
2011-03-28 10:41:00
45159
原创 dos格式文件传输到unix系统
<br /> 问:dos格式文件传输到unix系统时,会在每行的结尾多一个^M,想知道具体的语句格式来讲怎样将dos格式文件转成unix格式,<br />答:命令: %s^M//g 你这么敲肯定是不行的(卖一下关子,呵呵)中间有两个字符是"^M",对吧.按住Ctrl键,再按小v,再按小m就OK了,然后接着放开Ctrl键,再按"//g"原理:dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converte
2011-03-28 10:34:00
1568
原创 存储过程游标
<br />%ROWTYPE<br />http://www.javaeye.com/search?type=all&query=%25ROWTYPE<br /><br />获取REF CURSOR<br />http://www.javaeye.com/search?type=all&query=%E8%8E%B7%E5%8F%96REF+CURSOR<br /><br />oracle 存储过程 带游标作为OUT参数输出<br />http://www.javaeye.com/top
2011-03-28 09:59:00
460
转载 用Vim编辑远程文件
http://denven.blog.hexun.com/11727196_d.html使用netrw插件:Netrw supports reading and writing files across networks.<br />通常使用:<br />gvim ftp://username@hostname[:port]/full_directory/filename<br />vim ftp://username@hostname[:port]/full_directory/filename<br /
2011-03-23 22:04:00
7459
原创 成功安装了gdb
<br />安装gdb不容易,在chinaunix.net得到了帮助,所以写下来大家看 <br /> <br />安装前我从sunfreeware.com 下载了 gdb的软件包 gdb-6.0-sol8-sparc-local.gz<br />执行命令 pkgadd -R /usr/wangq -d gdb-6.0-sol8-sparc-local.gz <br />-R的作用是指定安装路径,安装没什么问题一切ok<br />但是安装完了,设置了系统路径后,运行 gdb产生错误 :<br />ld.so.
2011-03-22 08:37:00
706
转载 普通人的编辑利器Vim
<br /><br />本文适合Vim新手,既可阅读入门,也可跟随本文一步步操作,动手体验。<br /> <br /><br /> <br /> <br />2005年5月,我开始用Vim。此后渐入佳境,原来因版权自律而放弃盗版UltraEdit的遗憾一扫而空。并且,从Vim我才体会到,什么才是真正的编辑利器。在善用佳软或其他论坛发文,我都是先在Vim中输入,并方便高效地编辑好格式,再贴到网上。而我的通讯录、记事、读书笔记、工作记录也是在Vim中完成的。包括一些文档、数据的处理,让Vim过一下,也会提高不少
2011-03-21 20:35:00
592
原创 用Gvim建立IDE编程环境 (Windows篇)
<br /> <br /><br />说明:本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。<br />原作地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。<br /><br />0.准备软件及插件。<br />(a)gvim72.exe 地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。<br />(b)v
2011-03-21 20:17:00
607
原创 存储过程execute immediate
<br />存储过程中删除建立sequence需要加上execute immediate'删除或者建立语句,且不带分号';
2011-03-14 18:57:00
702
原创 system消息队列
1.创建一个消息队列,向此消息队列发送一个字节的消息,然后调用MSGCTL函数的IPC_STAT.获得消息队列情况,调用system函数,执行ipcs -q命令,最后删除此消息队列;2.用ftok函数创建一个消息队列,有排他性选项;3.创建一个专门发送消息的程序4.接受,5删除队列的6创建一个文件做标识符,传给一个接受消息的程序7.完成一个客户服务端的例子,用两个消息队列;8.
2011-03-06 22:12:00
4212
原创 posix消息队列
<br />1.创建一个posix消息队列,队列名又标准输入传进<br />增加排他性选项;<br /> <br />问题:<br />{<br />vi J 把下一行合并到这一行尾<br /> u 恢复删除内容<br /> dw 删除一个单词<br /> <br />main 的入参 int argc, char **argv<br />mq_open的第二第三个参数:flags 是对消息队列的属性,读写创建排他等,mode是对组,用户的权限设定;<br />
2011-03-06 21:35:00
577
原创 管道和FIFO
管道分为两种,普通的管道,和有名管道(FIFO)。普通管道:局限于有亲缘关系的进程;需求:客户 服务pipe入参是个数组,主程序pipe();close();fork();waitpid();pid_t;服务端函数:客户端函数:-----------------------------------------------------------------------------1.简单客户服务端流程图 读取指定文件内容2.单个进程中管道图;父子进程管道图;;一个shell管道线,三个进程图,who|
2011-03-04 09:19:00
1178
原创 posix消息队列
1.创建一个posix消息队列,队列名又标准输入传进增加排他性选项;2.从系统中删除一个消息队列3.获取一个消息队列的属性4.创建一个posix消息队列,队列名又标准输入传进增加排他性选项;创建的时候指定 消息队列最大消息数,每个消息的大小;由标准输入传进5.向一个队列中增加一个消息6.从一个消息队列中读一个消息,增加非堵塞性;要获取队列的属性,才可分配空间7.调用sysconf函数,输出 一个进程可打开多少消息队列, 任意消息的最大优先级
2011-03-02 22:20:00
1341
原创 windows如何获取目录下所有文件名
<br />以下程序只能在Windows下运 行,完全按照c语言编写。但是添加了windows.h库。以下程序在Visual C++ 2008下编译通过。#undef UNICODE // 如果你不知 道什么意思,请不要修改#define MAX_RESULT 256 #include #include #include char** EnumFiles(const char *directory, int *count){ WIN32_FIND_DATA FindFileData; HANDLE h
2011-03-02 17:26:00
3079
原创 C语言输出目录下所有的文 件名
输出目录f:/p2p/data下所有的 文件名:#include #include #include int main( ) DIR *p; struct dirent *d; if ((p=opendir("f:/p2p/data")) == NULL) { coutd_name, ".") != 0 && strcmp(d->d_name, "..") != 0) coutd_name, "..") != 0)如果不加这句,会输出目录,
2011-03-02 12:05:00
1025
原创 Unix/DOS换行 符转换的程序,学习一下C对文件的处理
<br />在Linux下的换行是/n,而在 Windows下的换行是/r/n。不经过处理的话,两者的文件在显示的时候会出现问题,比如一个Linux的文本文件用Windows记事本打开的时候不会换行格式很乱,一个Windows文件在Linux下用VI打开的话会出现^M字符等。下面这个程序是作者给出用于处理/r/n和/r的转换的问题,其中使用了C语言的标准IO库中的文件操作函数,主要的注释我已经给出,大家可以学习一下: 01.#include 03.#include 07.void usage()
2011-03-02 10:13:00
754
原创 一个目录下的文件更改扩展名
<br />#!/bin/ksh<br /><br />#mv *.cnx *.txt<br /><br />for FILENAME in `ls -l | awk '{ print $9 }'` #awk没有加-F 默认空格分隔符 ,命令用分割`command `<br />do<br /><br />#echo $FILENAME<br /><br />FILENAME2=`echo $FILENAME | awk -F . '{print $1}'` #-F 设定域分隔符
2011-03-02 09:30:00
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人