Makefile经典教程

makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专...

2018-07-12 11:04:39

阅读数 720

评论数 0

如何完整的安装Cygwin

一直在windows上编程,想学习下Linux的开发环境,虚拟机上安装了CentOS之后开发效率非常感人,偶得之Cygwin这个东西,号称Linux on  windows,果断装之。奈何天朝尚有国情,安装N次皆失败了。一路披荆斩麻终于成功!    ① 从官站(https://cygwin.com...

2018-06-19 22:17:43

阅读数 611

评论数 0

总结C++中几种结构体初始化的方法

结构体能自由组装数据,是一种很常见的数据打包方法。当我们定义一个结构体后,没有初始化就使用,就会使用到垃圾数据,而且这种错误很难发现。在编程时对于定义的任何变量,我们最好都先初始化。除了使用memset和ZeroMemory之外,有没有更简单的方法初始化呢?因为有时候每定义一个结构体,就使用一次m...

2018-06-06 16:00:13

阅读数 15119

评论数 0

C++中string、char *、char[]的转换

  一、string转char*。  主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();  1.data()方法,如:string str = "hello"; const char* p = str.dat...

2018-05-27 07:07:05

阅读数 80

评论数 0

如何判断SOCKET已经断开

最近在做一个服务器端程序,C/S结构。功能方面比较简单就是client端与server端建立连接,然后发送消息给server。我在server端会使用专门的线程处理一条socket连接。这就涉及到一个问题,如果socket连接断开(异常,正常)后,我如何才能感知到?server端这边是绝对被动的,...

2018-04-25 16:29:30

阅读数 4856

评论数 0

Linux下so动态库查看与运行时搜索路径的设置

ldd命令linux 下可以使用ldd查看可执行文件所需要的动态链接库(*.so)。 注:下文用so代替动态链接库文件。// 举个例子 ~$ ldd /bin/ls linux-vdso.so.1 => (0x00007ffe06386000) libsel...

2018-04-24 13:45:27

阅读数 170

评论数 0

Linux epoll模型

定义:   epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备...

2016-10-31 11:11:53

阅读数 420

评论数 0

使用strace, ltrace寻找故障原因的线索

在GNU/Linux环境下,当程序出现“疑难杂症”的时候,如何快速定位问题呢?本文介绍strace/ltrace的一些使用方法,内容主要来自个人的读书笔记(可见参考文献)。strace/ltrace 是一类不错的工具,在工作中经常会用到,其主要可以用于: (1) 了解一个程序的工作原理(可以了...

2016-10-28 15:57:19

阅读数 638

评论数 0

关于非阻塞的recv的时候返回的处理

注意recv()如果读到数据为0,那么就表示文件结束了,如果在读的过程中遇到了中断那么会返回-1,同时置errno为EINTR。 因此判断recv的条件:     如果read返回        如果==0            表示文件结束, 处理        如果      ...

2016-10-18 00:07:50

阅读数 932

评论数 0

epoll在LT和ET模式下的读写方式

在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是: * EAGAIN: 再试一次 * EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被bloc...

2016-10-17 23:53:24

阅读数 229

评论数 0

C Socket编程之Connect超时

网络编程中socket的分量我想大家都很清楚了,socket也就是套接口,在套接口编程中,提到超时的概念,我们一下子就能想到3个:发送超时,接收超时,以及select超时(注:select函数并不是只用于套接口的,但是套接口编程中用的比较多),在connect到目标主机的时候,这个超时是不由我们来...

2016-08-30 18:19:53

阅读数 489

评论数 0

socket C编程设置接收超时(Windows & Linux)

最近在用C写socket时,发现要对udp接收的时间进行监听,不然使用阻塞接收时将会造成一直等待。 >>>>>>>>>>>>>>>>>>>>>>>&g...

2016-08-30 17:49:14

阅读数 6442

评论数 0

用setsockopt()来控制recv()与send()的超时

在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的: int nNetTimeout=1000;//1秒, ...

2016-08-30 17:45:53

阅读数 358

评论数 0

编写windows 服务(c++)

Introduction This article shows how to create a basic Windows Service in C++. Services are very useful in many development scenarios depending on the...

2016-06-23 16:01:52

阅读数 376

评论数 0

C/C++段错误问题排查和解决方法

Segment fault 之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。 背景     最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛的一个问题。不过,目前写一个一千行左右的代码,也很少出...

2016-06-16 16:58:09

阅读数 2919

评论数 0

QT 显示动态gif图片 (release版)

在ui界面添加Qlabel控件,在QLabel中使用QMovie播放gif。 #include "WaitDialog.h" #include #include WaitDialog::WaitDialog(QWidget *parent, QString fileNam...

2016-05-11 10:52:00

阅读数 3529

评论数 0

OpenMP初步(英文)

 Beginning OpenMP OpenMP provides a straight-forward interface to write software that can use multiple cores of a computer. Using OpenMP you can ...

2014-12-19 09:43:48

阅读数 465

评论数 0

在Linux下编写Daemon

在Linux(以Redhat Linux Enterprise Edition 5.3为例)下,有时需要编写Service。Service也是程序,一般随系统启动用户不干预就不退出的程序,可以称为Service。Linux下的Service一般称为Daemon。   以上是广义的Servi...

2014-11-24 22:14:32

阅读数 397

评论数 0

Python与C参数交互---结构体指针作为参数 实例

在Python中某些时候需要C做效率上的补充. 在实际应用中,需要做部分数据的交互. Python 可以通用 ctypes 模块很好地调用C. 下面演示了 Python 中调用C一个标准函数. 传递一个结构指针入. 得到C中分配内存数据 传递出. 希望对你的Python 学习有所帮助. 1 ...

2012-11-07 15:24:59

阅读数 6636

评论数 0

Python.h: No such file or directory

在python调用c代码时,需要用到python.h文件,但这个文件没有在python编译器的默认安装包中,所以需要单独安装。 在ubuntu下: sudo apt-get install python-dev

2012-11-06 09:00:47

阅读数 485

评论数 0

提示
确定要删除当前文章?
取消 删除