加载中…
个人资料
来一桶
来一桶
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,563
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
(2012-04-10 22:01)
标签:

杂谈

分类: linux

1、4字对齐set tabstop=4 set ts=4

2、set nu //显示行号

   set nonu //不显示行号

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

 

#include <stdio.h>
#include <errno.h>
#include <semaphore.h>
#include <fcntl.h>

#define SEM_NAME 'mysem'
#define OPEN_FLAG O_RDWR|O_CREAT
#define OPEN_MODE 00777
#define INIT_V    0
static sem_t *sem = NULL;

static void mysem(char *str)
{
 int i = 0;
 while('\0' != str[i])
 {
  printf('%c\n', str[i++]);
  sleep(1);
 }
}


int main(void)
{

 pid_t pid = -1;
 int ret = -1;
 int status = -1;

 //创建一个命名信号量
 sem = sem_open(SEM_NAME, OPEN_FLAG, OPEN_MODE, INIT_V); 

 //创建子进程
 pid = fork();
 if(-1 == (ret = pid))
 {
  perror('fork failed: ');
  goto _OUT;
 }

 if(0 == pid)
 {
 &nbs

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2012-03-19 21:48)
标签:

杂谈

分类: linux系统编程


#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/mman.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>

#define FILENAME1 './lhw1'
#define FILENAME2 './lhw2'
#define OPEN_FLAG O_RDWR|O_CREAT
#define OPEN_MODE 00777
#define FILE_SIZE 4096*4

static int my_mmap(int dst, int src)
{
 int ret = -1;
 void* add_src = NULL;
 void* add_dst = NULL;
 struct stat buf = {0};

 //获取打开文件的详细信息(主要要取得读文件的大小)
 ret = fstat(src, &buf);
 if(-1 == ret)
 {
  perror('fstat failed: ');
  goto _OUT;
 }
 //映射源文件的存储区
 add_src = mmap(NULL, buf.st_size, PROT_READ, MAP_SHARED, src, SEEK_SET);
 if(NULL == add_src)
&

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: linux系统编程


#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#include <stdio.h>

#include <sys/select.h>


#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

#define OPEN_FLAG  O_RDWR|O_CREAT
#define OPEN_MODE  00777
#define CONTENT    'howaylee'

int main(int argc, char* argv[])
{
 int fd1 = -1;
 int fd2 = -1;
 int ret = -1;

 fd_set r_fds ;
 fd_set w_fds ;
 int max_fds = 0;

 char buf[12] = {0};

 //open file1
 fd1 = open(argv[1], OPEN_FLAG, OPEN_MODE);
 if(-1 == fd1 )
 {
  perror('open fd1 failed: ');
  return -1;
 }

 //write
 ret = write(fd1, CONTENT, sizeof(CONTENT));
 if(-1 == ret )
 {

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: linux系统编程

#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <poll.h>


#define OPEN_FLAGS O_RDWR|O_CREAT
#define OPEN_MODE  00777

#define W_DATA 'howaylee'

int main(int argc, char* argv[])
{
 int ret = -1;
 int fd1 = -1;
 int fd2 = -1;

 char r_buf[12] = {0};

 struct pollfd fds[2] = {0};

 //open fd1
 fd1 = open(argv[1], OPEN_FLAGS, OPEN_MODE);
 if (-1 == fd1)
 {
  perror('open fd1 failed: ');
  return -1;
 }
 //write fd1
 ret = write(fd1, W_DATA, sizeof(W_DATA));
 if(-1 == ret)
 {
  perror('write fd1 failed: ');
  goto _OUT;
 }
 //lseek fd1 head

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2012-03-19 21:39)
标签:

杂谈

分类: linux系统编程

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


#define FILE_NAME '/var/testlog'
#define OPEN_FLAG (O_RDWR|O_CREAT)
#define OPEN_MODE 00777

int main(void)
{
 pid_t pid = -1;
 pid_t cnt = -1;
 int   ret = -1;
 int i   = 0;
 int fd  = -1;

 
 pid = fork();

 if(0 < pid)
 {
  printf('parent: pid=%d ppid=%d\n', getpid(), getppid());
  
  exit(0);
 }

 if(0 == pid)
 {
  printf('child: pid=%d ppid=%d\n', getpid(), getppid());

  
  cnt = setsid();

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: QT
   要源码的朋友太多了,满眼的邮箱地址,我很头疼。鉴于现在CSDN首页的Qt应用大赛正在火热进行中,我干脆把源码奉献出来,给大家参考一下好了。不过,这不是我一个人的劳动成果,我一直认为技术领域的最高境界是分享,所以希望得到你的尊重。

       有什么好的意见和建议欢迎你提,但是请注意语气。我写博客的目的有两个,一是记录,二是分享。我记录我的学习历程,分享给大家。我不是神,我想神也不能精通各个技术领域,不是最好的方案你就冷嘲热讽,于情于理都不太合适吧。我这又不是出书,你掏腰包买了看了觉得不好,骂几句才痛快。我自己写我的自己博客,你发现瑕疵,是好事,欢迎你提出来,哪来那么大火气我就不懂了。你能写出更好的,我向你学习。如若不然,在写出作品之前,请别带着一副大爷的嘴脸耍青皮。

   

       请原谅我说了那么多前言范er的废话,我最后再说说关于QThread 的用法,tcpSocket起一个线程去读取用户注册信息这么一档子事。

      

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

看到一篇好文章,特地转载下来,很详细很全面,收藏之。

原文地址:  http://blog.21ic.com/user1/1425/archives/2009/64057.html


QT 多线程程序设计
QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接
这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

在不支持qml的Qt 4.6 ,很多时候,需要我们自定义控件。其实自定义一点也不难,并不是要从头开始写一个控件类,而是继承它,在其基础上,加些佐料,锦上添点花。

        曾经也有人对我的方案产生了质疑,说qss就可以解决,为什么要费劲自己写?

        我想说,第一qss不能解决全部,写一个功能函数无非是3、4行代码的事情,不费劲,同时所有特效都封装在一起,统一管理方便工程中任何一个widget的调用。第二,vim可以打开读文件,为什么还有cat的存在?一个道理,可有其利。第三,对于嵌入式终端的UI实现方案来说,越多越好,在比较下根据实际情况选取最优,因为嵌入式对文件系统大小,库的裁剪要求比较严格。

 

        以Button为例吧,为什么要以Button为例,因为在我看来,Button是万能的,只是看你会不会用。如果把Button属性设置为flat平滑且不可点击,那么它就是个label;如果把许多上述的label按一定的顺序和布局排成行或列,那它就是listview……加载不同背景图片、点击、悬浮、动画、click on槽灵活处理,等

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

Qt的电子时钟是个老掉牙的demo了,但是利用lcdNumber显示的样子非常老土(下图第一个显示效果),一看就知道是从qt帮助文档里摘出来的example,毫无新意。



    

       美化一下系统时钟,抛开固有控件躯壳,DIY效果让人眼前一亮,要知道细节决定UI成败。这也是我一直所追求的。

       思路非常简单,就是利用label或者button贴图变化显示。


       一说到贴图,有人可能就会认为代码冗余,哐哐的加载图片大坨的判断和代码量……其实贴图也讲究方法,比如我实现了一个:

getPngName(QChar x)来获取资源名称,和数字0123456789对应起来,即:资源图片名称为0.png,1.png...以此类推,所以只需要:


[cpp]
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有