Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux内核中的typeof

Linux内核中的typeof

Linux内核版本:2.6.14今天分析内核时又看到了typeof,只知道它大概是返回变量的类型,后来上网查了下发现这个关键字在linux中用的非常多。如果你对sizeof很熟悉的话,那么大可进行类推,sizeof(exp)返回的是exp的数据类型大小,那么typeof(exp.)返回的就是exp的数据类型。下面是linux内核中typeof的一些例子。include/linux/kernel.h/** min()/max() macros that al...
使用IntelliJ IDEA 12开发haXe应用

使用IntelliJ IDEA 12开发haXe应用

一直以来haXe缺少一个好的IDE,这点确实不方便,在现在注重快速开发的时代,一个现代IDE能带来太多的帮助。目前,官方推荐的是在Windows上使用FlashDevelop,在Mac上是MonoDevelop和Sublime Text2,我前一段一直都在用FlashDevelop,只能说可用而已,好用谈不上,比如:代码自动完成还是时有时无的,也无重构等功能,好处是可以进行Flash目标上的调试。自从试用了IntelliJ IDEA 12的Early Ac...
haXe开发备忘:位图重复填充的问题

haXe开发备忘:位图重复填充的问题

haXe开发中发现:在native也就是cpp目标中,用Graphics.beginBitmapFill()这个方法填充一个区域时,repeat参数不起作用,结果总是用边缘像素填充了空白区域。经过一番检索与研究,发现这是OpenGL硬件渲染器的一个已知限制,如果纹理图的边长不是2的整数倍(如4, 16, 64, 256, 1024...)的话,就是这个结果。有几个解决方案可根据实际情况选用:1. 强制NME采用软件渲染器,方法是把显示对象的cacheAsB...
haXe NME通过JNI调用Android

haXe NME通过JNI调用Android

haXe中的JNI概念首先澄清一个概念问题,NME中的JNI接口和java中的含义并不相同,java中的JNI是java调用本地C/C++代码的标准接口,而haXe中的JNI则正好相反,是用haXe在Android目标平台调用java代码。当然,意义上也说得通,因为从haXe和Android目标的关系来说,Android自带的java运行库反而是native的嘛,呵呵。nme.JNI类的使用haXe NME调用java方法是通过nme.JNI类实现的,JN...
C++ 协程与网络编程

C++ 协程与网络编程

协程协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。协程可以在运行期间的某个点上暂停执行,并在恢复运行时从暂停的点上继续执行。 协程已经被证明是一种非常有用的程序组件,不仅被python、lua、ruby等脚本语言广泛采用,而且被新一代面向多核的编程语言如golang rust-lang等采用作为并发的基本单位。 协程可以被认为是一种用户空间线程,与传统的线程相比,有2个主要的优点:与线程不...
使用Python以及工具包进行简单的验证码识别

使用Python以及工具包进行简单的验证码识别

使用Python以及工具包进行简单的验证码识别,直接开始。原始图像 Step 1 打开图像吧。im = Image.open("temp1.jpg")Step 2 把彩色图像转化为灰度图像。彩色图像转化为灰度图像的方法很多,这里采用RBG转化到HSI彩色空间,采用I分量。imgry = im.convert("L")灰度看起来是这样的Step 3 需要把图像中的噪声去除掉。这里的图像比较简单,直接阈值化就行了。我们把大于阈值threshold的像素置为1,...
扫描服务端口的Java程序

扫描服务端口的Java程序

在Linux下用C写了一个扫描指定IP地址对外开放端口号的程序。扫描自己的机器的端口号速度还是挺快的,用编写的程序扫描在美国的服务器时,等了10分钟,端口号才扫到1000左右。于是就想到了用多线程,可是linux c的多线程不会,于是就用java程序编写了一个可实现多线程扫描的功能。速度比原来快了很多。import java.net.*;import java.io.IOException;public class ScannerPort extends ...
glibc中的printf如何输出到串口

glibc中的printf如何输出到串口

Linux内核版本:2.6.14glibc版本:2.3.6CPU平台:armprintf的输出不一定是串口,也可以是LCD,甚至是文件等,这里仅以输出到串口为例。本文分析了printf和文件描述符0、1和2以及stdout、stdin和stderr的关系,通过这篇文章可以知道文件描述符0、1和2为什么对应着stdout、stdin和stderr,因为glibc就是这么定义的!!!首先看glibc中printf函数的定义(glibc-2.3.6/stdio-...
Linux编程---守护进程

Linux编程---守护进程

Linux守护进程linux服务器在启动时需要启动很多系统服务,他们向本地和网络用户提供了linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程来执行的。守护进程是运行在后台,生存期长的一种特殊服务进程,他们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。由于在linux中,每一个系统终端与用户进行交流的界面称为终端,每一个从终端开始运行的进程都依附于这个...
Linux内核中的get_user和put_user

Linux内核中的get_user和put_user

Linux内核版本:2.6.14CPU平台:arm在内核空间和用户空间交换数据时,get_user和put_user是两个两用的函数。相对于copy_to_user和copy_from_user(将在另一篇文中分析),这两个函数主要用于完成一些简单类型变量(char、int、long等)的拷贝任务,对于一些复合类型的变量,比如数据结构或者数组类型,get_user和put_user函数还是无法胜任,这两个函数内部将对指针指向的对象长度进行检查,在arm平台...
详解大端模式和小端模式

详解大端模式和小端模式

一、大端模式和小端模式的起源关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令所有的子民吃鸡蛋的时候,必须先打破鸡蛋较小的一端,违令者重罚。然后老百姓对此法令极为反感,期间发生了多次叛...
Python之eval()函数的危险

Python之eval()函数的危险

Python的eval()函数可以把字符串“123”变成数字类型的123,PP3E上说它很危险,还可以执行其他命令!在家没事,做了些试验。果然,如果python写的cgi程序中如果使用eval()而非int()来转换诸如年龄这样的输入框中的内容时是非常危险的。不仅可以看见列出系统的全部文件,还可以删除文件,察看文件源代码。试着写了个程序,想把本地的脚本文件同过这样的形式一行一行的写到服务器的某个文件里,可最后失败在无法输入换行符"/...
HTML5本地存储之Web Storage篇

HTML5本地存储之Web Storage篇

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB。Web Storage又分为两种:sessionStoragelocalStorage从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了;而localStorage则一...
HTML5实现网页元素的拖放操作

HTML5实现网页元素的拖放操作

HTML5之前,要实现网页元素的拖放操作,需要依靠mousedown、mousemove、mouseup等API,通过大量的JS代码来实现;HTML5中引入了直接支持拖放操作的API,大大简化了网页元素的拖放操作编程难度,并且这些API除了支持浏览器内部元素的拖放外,同时支持浏览器和其它应用程序之间的数据互相拖动。本文通过一个简单示例,演示HTML5中拖放API的使用方法。场景:如下图所示,我们要实现:通过拖放将照片从左侧“相册”区...
<< 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 >>