
Programming in C/CPP
DawnRayYang
我觉得偶尔我还是灵光~~
展开
-
囧……scanf的忘却
好长时间不写程序了……,今天好不容易收心来写写程序……,被scanf恶心了一上午,多谢flyli帮我解决问题,哈哈。scanf("%d",&a);就这么简单就可以了。如果非要用scanf("a=%a",&a);的话,输入则必须要是a=**回车。的形式。唉……,拿到自己的C语言书就是激动阿。看着上面的笔记竟然以为scanf是输出控制啦……scanf,printf一个是输原创 2009-02-10 10:35:00 · 522 阅读 · 0 评论 -
VIM中自动添加注释信息
<br />大学的时候,计科的那个师兄的vimrc可以在打开一个c文件的时候自动的加上自己的注释头信息。<br />当时觉得很帅,后来也没问到……<br />今天在优快云上看到了一个:<br />http://blog.youkuaiyun.com/hxxiaopei/archive/2008/07/27/2720495.aspx<br />虽然我好久没有碰vimrc了吧。<br /> <br />主要用到map来映射,将一个自定义的命令或者按键映射为去调用某个函数来完成这个工作。<br /> <br />vimrc原创 2011-04-28 19:04:00 · 4065 阅读 · 0 评论 -
发帖纪念LFS6.3成功
参考的有:http://blogold.chinaunix.net/u/13265/showart.php?id=477122http://www.linuxfromscratch.org/lfs/view/6.3/一篇是国内的翻译+经验一篇是官方文档下了6.原创 2011-09-13 21:53:42 · 731 阅读 · 0 评论 -
关于编译内核时候出现__gnu_mcount_nc的问题以及解决办法
参考http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=333083感谢5楼的cnkilior的解答。这个是开启了gprof,才会出现的问题,按道理内核不应该去gprof的吧。如果只要编译通过,只需要把CFLAGS的原创 2011-09-15 08:31:48 · 3421 阅读 · 1 评论 -
使用GCC仅对源文件做宏展开的方法
gcc -E -P main.c这句话可以将main.c中的宏进行展开,得到展开后的代码。不仅如此,还会将#include进来的文件也加进来,比如stdio.h之类的。原创 2011-08-29 11:35:59 · 4002 阅读 · 1 评论 -
建立多个应用程序的工程:autoconf,automake,shell
问题的产生:有时候我们会写很多小程序,程序之间有些风马牛不相及,但是这些程序又老是抱团出现。比如对于开发板上面的各种功能,都会有小程序来检测是不是可以使用helloworld,gpio,led,beep…等等。以往我们都是把每一个程序当成一个程序来写,这样假设有10个程序,我们需要写10个Makefile,然后再分开管理。因为我们都恨懒,所以我们想让这个事情变的简单自动化起来。解决设想:原创 2011-12-05 23:58:41 · 880 阅读 · 0 评论 -
FIFO 非阻塞写+非阻塞读+延时循环读的一种方法
用mkfifo在当前目录下建立一个myfifo的有名管道只运行非阻塞写的程序 open参数为O_WRONLY | O_NONBLOCKwrite失败,这是man手册里面说明了的情况如果open参数为O_RDWR | O_NONBLOCK写程序则可以立即返回但是当运行完写程序之后再运行读程序,发现没有从管道里读出任何数据出来。也就是说管道里面是空的,没有存入任原创 2011-12-08 09:32:44 · 5605 阅读 · 0 评论 -
vim删除^M
转载 http://blog.youkuaiyun.com/cat_lover/article/details/69322571.进入命令模式。vim的命令模式,就是在编辑模式下输入":",光标就会跳到屏幕最后一行,并在那里显示冒号,此时就已经进入命令模式。命令模式的内容均显示在屏幕的最后一行,按下回车键,vim执行命令。2.在命令模式下输入下列字符:输入:%s/^M$//g转载 2012-08-10 09:28:55 · 1146 阅读 · 0 评论 -
如何在Linux终端里用Shell和C输出带颜色的文字
转自 http://blog.youkuaiyun.com/acmee/article/details/6613060我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。一、shell下的实现方法 先来讲在shell下,如何实现。用echo命令就可以实现,参看以下例子:转载 2012-12-04 21:25:13 · 618 阅读 · 0 评论 -
在Make过程中输出调试信息
http://www.gnu.org/software/make/manual/make.html8.12 Functions That Control MakeThese functions control the way make runs. Generally, they are used to provide information to the user of the翻译 2012-12-14 15:14:07 · 3845 阅读 · 0 评论 -
编译链接运行时使用自己编译的库
在gcc中指定-L和-l用来通过编译时候的库检查之外如果库的存在地点不在系统的搜索路径中还需要用--rpath参数-Wl, --rpath=xxxx这样,运行的时候,程序才能够找到对应的库原创 2013-01-25 13:36:30 · 661 阅读 · 0 评论 -
socket编程中write返回-1的问题
<br />作为服务器,有客户端连接进来。TCP协议。<br />当客户端断开连接的时候,按道理说write将会不成功的。<br />那么当write不成功的时候是应该返回-1的。<br /> <br />实际情况是,当客户端断开的时候,write仍然会成功,再下一次才会失败。<br />而失败了之后,进程就结束掉了。没有返回-1.<br /> <br />google之后知道:<br />客户端关掉之后,再往这个文件描述符中写东西会引发一个SIGPIPE信号,这个信号的默认动作就是让进程结束掉。……。好吧原创 2011-04-25 19:22:00 · 7928 阅读 · 0 评论 -
linux共享内存初级使用
<br />要在不同的进程之间共享一个数组,怎么办?用文件好慢。<br />用管道的话,管道会阻塞的。<br />用共享内存好些。<br />在UNP2里面其实都给出了使用例子了。只是我没有UNP2罢了……只能看PDF去了。<br /> <br />用到的函数有<br />shmget 申请一个共享内存,得到一个id号,需要提供一个key_t。<br />shmctl 控制共享内存的行为,获取它的结构啊,或者把它干掉等等。<br />shmat 把共享内存连接到地址上去,一种映射。<br />shm原创 2011-04-21 19:58:00 · 641 阅读 · 0 评论 -
《编程之美》——游戏之美——中国象棋将帅问题——tip
《编程之美》——游戏之美——中国象棋将帅问题——tip拿到新书,很高兴,虽然因为雪的缘故迟到了几天。关于这个将帅的问题,也是关于这个只能使用一个变量的问题。关于第一个问题,就是将帅不能见面的问题,可以用==来判断。关于第二个问题,倒是觉得挺好玩的。搞单片机上来的都习惯用位来解决问题,有时候我也老是把变量当成寄存器中的位来用。当然,用结构体来实现寄存器组的方法也是跟uboot学来的。对书中给出的第原创 2009-11-16 19:00:00 · 649 阅读 · 4 评论 -
C++类的概念初步
<br />为了研究C++的类的概念,写了个小程序来实际操作一下。<br />#include <iostream>using namespace std;class Miners { public: Miners(); ~Miners(); void DispInfo(Miners miner); void SetSpeed(int speed); void SetLength(int length); void SetHeight(int heig原创 2011-03-10 17:04:00 · 507 阅读 · 0 评论 -
21天学通C++ 第六版 阅读感悟
<br />第十章类和对象开始,介绍类,这个在面向对象编程中的重要角色<br /> <br />十一章的 实现继承 是类的应用<br /> <br />十二章的 多态 是继承的应用<br /> <br />但是后面的 十三章 运算符类型与运算符重载 和 十四章 类型转换运算符 还有 十五章 宏和模板简介 则是并列的关系<br />没有发现他们之间有什么需要先看哪章后看哪章的顺序要求,感觉可以先看自己感兴趣的。<br /> <br />接下来的两部分是STL<br /> <br />第五部分的 高级C++概念原创 2011-03-11 09:38:00 · 1120 阅读 · 0 评论 -
C++类的继承初步
<br />从类开始,C++的思维方式就和C的不一样了,搞的我比较晕。看完了类,接下来的是继承这个很牛AC的属性。<br />根据魔兽HUM的农民写了个小程序,来实践实践,没有实践,理论没法掌握的。<br />#include <iostream>using namespace std;/**********************************************************************/class Miners //定义简单的矿工类{ publ原创 2011-03-10 17:06:00 · 436 阅读 · 0 评论 -
C++ 运算符重载和类型转换运算符
<br />21天C++的13,14章<br />感觉运算符重载主要是一个operator在起作用<br />而类型转换则是必要的时候才用,就是为了转换类型,跟C里面的强制转换类型一个意思,只是有不同的实现罢了。<br /> <br />这两个部分不是很多的章节,也只是介绍了使用方面的事情。没什么什么非常深入的理论。还是可以理解。<br />看这部分的时候需要淡定,因为未知的东西有点多,知道哪些是需要知道的,哪些不知道的东西可以不知道就好了。原创 2011-03-16 11:51:00 · 874 阅读 · 0 评论 -
Emacs 初步使用
<br /><br />从官网上下23.3的压缩包,放到FC10里去解压。<br />然后./configure<br />然后make<br />然后make install<br />然后鼠标点开或者输入emacs<br />程序运行还是需要空间的,如果没有足够的空间程序是跑不起来的。<br />windows下的安装不要放到中文路径下,不然启动不了,说某些文件找不到。<br />而且windows下要下载windows版本的,绿色版的不用安装的。<br /> <br />从VIM转过来,开始肯定不习惯原创 2011-05-18 18:44:00 · 592 阅读 · 0 评论 -
‘PTHREAD_MUTEX_RECURSIVE’未声明(在此函数内第一次使用)
<br />GCC编译pthread的时候,用到PTHREAD_MUTEX_RECURSIVE的时候,要在MAKEFILE里面加上-D_GNU_SOURCE<br /> <br />参考http://hi.baidu.com/yatusiter/blog/item/46aba8ec99b5aa2063d09f46.html<br /> <br />gcc -D_GNU_SOURCE hello.c <br />means the compiler will use the GNU standard of c原创 2011-04-12 10:04:00 · 3473 阅读 · 0 评论 -
FIFO open出现阻塞
<br />今天在搞FIFO的时候,出现程序阻塞在open函数里,各种郁闷。<br />mkfifo的时候用mode是0777.<br />我open的时候想read only或者是write only来着。<br />结果就发生了这个错误。<br />open的属性换成O_RDWR,就可以正常……<br />这,好吧,我承认我理解的不到位。原创 2011-04-13 12:41:00 · 1057 阅读 · 0 评论 -
linux应用程序中的定时器
<br /> <br />参考http://blog.youkuaiyun.com/turkeyzhou/archive/2010/05/12/5580790.aspx<br /> <br />linux操作系统为每一个进程提供了3个内部计时器。<br />ITIMER_REAL;ITIMER_VIRTUAL;ITIMER_PROF.<br /> <br />ITIMER_REAL:给定一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号。<br />ITIMER_VIRTUAL原创 2011-04-13 15:34:00 · 5634 阅读 · 0 评论 -
linux下select()中的timeout的设置与不设置问题
<br />linux下的select,注意咯,不是pselect。<br />select()函数的最后一个参数是timeout,用来设置超时用的。<br />用的是一个struct timeval结构,需要用到sys/time.h文件。<br />struct timeval {<br />long tv_sec; 秒<br />long tv_usec; 毫毛<br />}<br /> <br />设置了timeout的值之后呢,select在没有文件描述符监视可用的情况下,会等待这个timeout的原创 2011-04-16 10:58:00 · 6300 阅读 · 1 评论 -
Ubuntu12.04下建立OpenGL开发环境
$sudo apt-get install libgl1-mesa-dev安装OpenGL UtilitiesOpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。接下来我们安装OpenGL Utilities$sudo apt-get install libglu1-mesa-dev原创 2013-07-12 09:56:38 · 801 阅读 · 0 评论