Tag Archives: C/C++

linux模拟windows的kbhit

linux模拟windows的kbhit

 

Windows有个很不错的函数kbhit,可以检测是否有任何键按下了。例如我们可以检测键按下,来退出一个无限循环。还可以得到用户按下的这个键。

但是linux默认是没有这个函数的,我们可以使用下面自定义的函数来实现这个功能。

实现的原理就是将阻塞模式的stdin改为非阻塞模式,然后尝试读取,读的时候有东西则按下了键,否则没有。

 

int kbh更多... “linux模拟windows的kbhit”

linux 用c程序写整个控制台

linux 用c程序写整个控制台

 

我们知道使用

printf("test \n");

这样只能输出一行。而我们看到过很多程序,启动后程序占满整个控制台窗口,这是怎么做到的呢?

原理就是先清掉整个整个屏幕

system( "clear");

让后画满整个屏幕

这个也是通过

printf()

这个函数实现。

然后

画完一屏之后,

再次调用 system("clear&qu… 更多... “linux 用c程序写整个控制台”

测试你的编译器是否支持c++0x(c++11)

c++出新标准了,c++11或者是c++0x

那么怎么测试你的编译器是否支持这些特性呢?

新建一个文件,main.cpp。然后敲入下面代码:

#include<iostream>

using namespace std;

int main( int argc, char** argv )
{
        auto fn = []( int a, int b ){ return a + b; };
        int c = fn( 2, 3 );
        cout<<"res
更多... “测试你的编译器是否支持c++0x(c++11)”

利用sftp来上传你的文件

在开始介绍如何使用sftp之前,先简单说明一下sftp和ftps不是一回事情,很多人把这2个协议搞混了,有人还把Filezilla配置ftps来说明怎么利用filezilla如何配置sftp。其实filezilla服务端是不支持sftp协议的,客户端支持。

我们ftp不是一个安全的协议,其发送的内容很都是以明文的方式发送,包括用户名,密码还有文件内容。因此后来又引入了 secure ftp,就是安全的f… 更多... “利用sftp来上传你的文件”

用c++写扩平台程序

口号:一次编码,到处编译! :-) 

     一次编码,在 vc7.1 , vi 甚至ulteredit 上完成编码。

     到处编译,将写好的代码 copy  到其它操作系统,也能够编译运行,而不用去修改哪怕一行代码。

     听起来是不是象 SUN 的口气,呵呵。 其实 c++ 的移植性个人认为是超过 java 的,java之所以名声在外的原因 B.S 说得很明了:厂商利益。

 

     呵,废话不多说,进入主题。

 

     要建立一个c++跨平台的应用,亦难也易。

     难在什么更多... “用c++写扩平台程序”

我来理解extern “C”

编程快5年了, 今天才算对extern “C” 有个较为清晰的认识. 本人对extern “C”的认识可以分为三个阶段:

 

1. 从别人的代码里面看到有这个东西, 自己不认识, 就上网查查, 大概明了它是什么意思.

2. 看到别人的代码里面包含用c写的代码就用extern “C”, 那么自己依葫芦画瓢用c代码的时候也加这个东西. 自己感觉对这个东西很熟悉了… 更多... “我来理解extern “C””

多字节与unicode之间的转换

两者之间相互转换有2套函数可以利用

c运行时库:         wcstombs   mbstowcs 

 

windows API:  MultiByteToWideChar  WideCharToMultiByte

 

函数不用解释, 看字面意思就可以. 下面列出使用案例:

 

c运行时库:

#include <stdio.h>
#include <stdlib.h>

void main( void )
{
  int  … 更多... “多字节与unicode之间的转换”

查看某个进程和线程的cpu使用率

查看某个进程和线程的cpu使用率

 

在实际开发中发现有时自己开发的程序使用率非常的高, 以致于影响到机器上其他程序的正常运行. 这时我们该怎么办呢?

 

首先应该想到的, 也是最佳解决方法是找到进程中使用cpu最多的那个线程( 怎样找到cpu使用最多的线程, 暂不在这里讨论 ), 然后进行优化它. 当然还有另外一种就是限制程序的cpu使用率的峰值. 当进程的使用率达到限定的峰值时, 就让他睡眠 sleep… 更多... “查看某个进程和线程的cpu使用率”

获取windows系统锁定和解锁计算机事件

获取windows系统锁定和解锁计算机事件   

 

开发中有时碰到要去获取计算机的锁定和解锁事件, 然后在决定在锁定前程序要作些什么, 解锁后程序要作些什么. 如锁定解锁后3D的设备组件会Lost也就是变为无效,需要重新获取, 否则3D不会得到刷新.

 

那么我们要怎么做呢?

 

可以用RegisterSessionNotification 和UnRegisterSes… 更多... “获取windows系统锁定和解锁计算机事件”