有的数据在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态, 用一位二进位即可,但gcc没有bool变量,为了节省存储空间,并使处理简便,比较常见的方式是使用宏或函数的方式取变量中某些位的值,比如: 这样取值比较费劲,存起来更费劲,且不够直观。 这种情况下C语言还提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的变量用一个字节的几个二进制位域来表示。 比如我需要大量使用的结构体(如大链表的node …
分类存档: 学习 - 第4页
SSH无密码登录
step1. a$ ssh-keygen -t rsa 一路回车 step2. a$ scp ~/.ssh/id_rsa.pub b:~/.ssh/a.pub //输入密码 step3. b$ cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys 大功告成。之后在使用a机向b机复制文件的时候就不用再输入密码了。
为啥么logrotate日志不轮转呢?_新日志size0
某懒人写个程序,要管理log,留作日后的后续功能处理和统计和领导需要。因为懒得写,所以直接用了syslog函数,把log交给rsyslog去写了。然后用logrotate每天做日志轮转。 两种log分别发送到了local6.info和local6.notice。 在/etc/rsyslog.conf里添加了 local6.info /var/log/zw_info.log local6.notice /var/log/zw_notice.log 在/etc/logrotate.d/建新文件zw_log
make时自动更新-v输出的build版本
其实也没啥神奇的,无非就是脚本和C宏定义。 首先,是脚本部分,Subversion包中有个svnversion命令,有了它就好办了, 在Makefile中将去版本命令写好后作为参数传给gcc/g++/cl等等之类,用-D在编译器参数中定义版本宏。
脚本自动削减gearman任务存量
用gearman总是难免遇到client提交量大增或者worker或者网络出问题导致jobs大量积压。 作为一个懒人,总是要惦记着这事是绝不能接受的。 所以万能的shell啊,请赐予我力量吧~!
使用SecureCRT rz\sz 上传 下载文件
连一个新的服务器,发现不能使用rz、sz命令,在网上查了一下,发现需要安装lrzsz,才可以使用。 1.Linux软件源安装 yum install lrzsz 2.Linux源码包安装
ArchLinux升级内核崩溃致启动不能
患有“升级强迫症”的我像往常一样习惯性的升级系统,今天archlinux把内核升级到了3.3.4-2,神奇的事情发生了,丫的居然崩溃了。开源软件真是让人又爱又恨哪。
shell集合计算命令uniq用法
1、取file1 file2的并集 cat file1 file2 |sort -u |uniq 2、取file1 file2的交集 cat file1 file2|sort -u |uniq -d 3、去掉file1 file2的交集 cat file1 file2|sort -u |uniq -u
c语言的smtp协议和它的mime扩展
一说写代码发邮件,好多人第一反应就是找开源库。其实看下smtp协议还是挺简单的,不简单哪对得起那个s呐。以我个人的理解这里主要有以下几个基本命令:
近期评论