分类存档: 学习 - 第4页

结构体位域

有的数据在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态, 用一位二进位即可,但gcc没有bool变量,为了节省存储空间,并使处理简便,比较常见的方式是使用宏或函数的方式取变量中某些位的值,比如: 这样取值比较费劲,存起来更费劲,且不够直观。 这种情况下C语言还提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的变量用一个字节的几个二进制位域来表示。 比如我需要大量使用的结构体(如大链表的node …

继续阅读 »

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啊,请赐予我力量吧~!

xcode编译ios Universal framework

不久前领导指示要做ios的一个sdk,这活儿自然是framework最适合最方便,一个文件夹,拖进去就齐活了。不像static library头文件资源文件一大堆,也不像直接发布源码那么奔放。随后发现其实xcode是不支持创建ios的framework工程的。网上流传有手工制作framework的文章,随后又发现要做Universal的framework有点费劲哪,我好懒呐。随后又又发现了iOS-Universal-Framework这个好东西。

使用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呐。以我个人的理解这里主要有以下几个基本命令: