linux下的printf
有时不要以为printf一定能打印出数据来。有时,你不在程序的每个地方printf的地方都不加上"\n”,程序根本就不打印任何数据出来,信不?!我就倒霉的遇到个一次。遇到这些很头疼的,还以为是程序哪儿出错咯。原来这是因为,它其实有缓冲的功能,只有在“\n”,它才将缓冲里的数据,打印出来。切记,切记~~
比如在父子程序中,按理来说,子程序里面的printf绝对不会打印出父程序里面的printf数据。但你试试,在父程序里面调用printf,但不加“\n”,然后调用fork(),产生子程序。在子程序里面,你再调用printf,这回你再加上“\n”。结果,你就会发现子程序输出了父程序里面printf的数据。
父程序:
printf("1”);
if(fork()>0)
{//子程序
printf(“2\n”);
}
结果就是:
父程序:1
子程序:12
对比
父程序:
printf("1\n”);
if(fork()>0)
{//子程序
printf(“2\n”);
}
结果就是:
父程序:1
子程序:1
奇怪吧,话得说回来,是因为printf有缓冲功能,当你调用printf(不加“\n”),他会把你的数据缓冲起来,当你再调用printf(加上“\n”),他就会把里面缓冲的所有数据输出。
所以,对于一个程序员来说,这绝对算的上是必须知道的常识。
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
修改/etc/profile文件:
# vim /etc/profile
增加路径设置,在末尾(反正是最后一行)添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
重启虚拟机即可生效。
用命令#arm-linux-gcc -v查看是否生效。 ......
POSIX
是一种标准规范,主要针对在 Unix
操作系统上面跑的程序来进行规范。 若你的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在你的操作系统上面运作。 Linux
由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因此程序的移植相当简易!也让大家容易转换平台,提升
Linux 的使用率。
驱动与 ......
在linux下安装配置svn独立服务器
subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(jijian91在搞LDAP时就深受其害,没法根治),所以还是F ......