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

首页 / 操作系统 / Linux

Linux内核中的信号机制

Linux内核中的信号机制

信号机制是类UNIX系统中的一种重要的进程间通信手段之一。我们经常使用信号来向一个进程发送一个简短的消息。例如:假设我们启动一个进程通过socket读取远程主机发送过来的网络数据包,此时由于网络因素当前主机还没有收到相应的数据,当前进程被设置为可中断等待状态(TASK_INTERRUPTIBLE),此时我们已经失去耐心,想提前结束这个进程,于是可以通过kill命令想这个进程发送KILL信号,内核会唤醒该进程,执行它的信号处理函数,KILL信号的默认处理是退...
通过shell例子来学习循环结构的语法

通过shell例子来学习循环结构的语法

心得: 所谓有用就是学会了一直在使用,不经常用叫没多大用,忘记了就叫没用。反过来想想经常挨领导批的很有可能是领导对你有很大的期望。所以我们学会的东西要经常用到实际中去才是自己的东西。其实学习的最好方法就是先接触实际的东西,用实践来验证理论。写脚本编写要求证,可以一边测试一边写(中间最好有个输出标记看到哪儿错了)。下面的例子在林夕昱老师的视频里看到的,自己为了练习在CentOS的系统下默写下来了,可能是刚学吧,总是写下来执行后得到好多提示(当然了这些提示是错...
使用Go Hijack和jQuery轻松实现异步推送服务

使用Go Hijack和jQuery轻松实现异步推送服务

首先要说明的是,这里实现的异步推送服务采用的是Long Polling方式,并不是Comet。如果想用Comet来实现的话,可以参考这个开源项目:http://cometd.org/。不过其中的服务端实现只有Java版和Python版。如果要用Go来做后端的话需要自己实现Bayeux协议。关于异步推送服务的解决方案的资料有很多,在这里就不在赘述了。当然,当前最先进的两个方案就是Long Polling和Comet。1. 预备知识1.1 Go语言关于Go语言...
C++指向类成员函数的指针

C++指向类成员函数的指针

最近在开发中用到了函数指针,于是想整理了一下有关函数指针的概念。O(∩_∩)O~首先 函数指针是指向一组同类型的函数的指针;而类成员函数我们也可以相似的认为,它是指向同类中同一组类型的成员函数的指针,当然这里的成员函数更准确的讲应该是指非静态的成员函数。前者是直接指向函数地址的,而后者我们从字面上也可以知道 它肯定是跟类和对象有着关系的。C++函数指针实例:typedef int (*p)(int,int);//定义一个接受两个int型且返...
Linux 下视频设备设置的几个参数 v4l video4linux v4l2 ioctl

Linux 下视频设备设置的几个参数 v4l video4linux v4l2 ioctl

用一系列的ioctl发命令控制设备。v4l支持的ioctl命令大概有二十几个,为了尽快的编出一个简单的图象捕捉程序,让我们先来看看几个主要的命令:1. ioctl(fd,VIDIOCGCAP,&cap);该命令主要是为了获取电视卡的功能信息。例如电视卡的名称,类型,channel等。参数cap是一个结构,当ioctl命令返回时,结构的各成员就被赋值了,结构体的定义为:struct video_capability{ char name[32]...
网络编程常用接口的内核实现----sys_listen()

网络编程常用接口的内核实现----sys_listen()

listen()函数仅在TCP服务器端调用,它做两个事情:将套接字转换到LISTEN状态和设置套接上的最大连接队列。listen()对应的内核实现为sys_listen(),下面开始对其实现作具体的分析。一、sys_listen()函数sys_listen()的源码实现及分析如下所示:/**Perform a listen. Basically, we allow the protocol to do anything*necessary for a li...
Linux中listen()系统调用的backlog参数分析

Linux中listen()系统调用的backlog参数分析

这篇文章是对上一篇博客网络编程常用接口的内核实现----sys_listen()的补充(见 http://www.linuxidc.com/Linux/2013-02/79858.htm),上篇文章中我说listen()系统调用的backlog参数既是连接队列的长度,也指定了半连接队列的长度(不能说等于),而不是《Unix网络编程》中讲到的是半连接队列和连接队列之和的上限,也就是说这个说法对Linux不适用。这篇文章中通过具体的代码来说明这个结论,并且会分...
网络编程常用接口的内核实现----sys_bind()

网络编程常用接口的内核实现----sys_bind()

bind()系统调用是给套接字分配一个本地协议地址,对于网际协议,协议地址是32位IPv4地址或128位IPv6地址与16位的TCP或UDP端口号的组合。如果没有通过bind()来指定本地的协议地址,在和远端通信时,内核会随机给套接字分配一个IP地址和端口号。bind()系统调用通常是在网络程序的服务器端调用,而且是必须的。如果TCP服务器不这么做,让内核来选择临时端口号而不是捆绑众所周知的端口,客户端如何发起与服务器的连接?一、sys_bind()bin...
Linux/Unix Shell的find用法笔记

Linux/Unix Shell的find用法笔记

Linux/Unix Shell的find用法笔记参数解释:find用来查询某个目录下的文件几种常用的参数如下-path 后面跟着要查询的路径-prune 表示不再指定目录下查询,如果同时使用-depth,那么-prune命令将会被忽略-name 要查询的文件名,可以使用正则表达式来查询-mtime 查询近n天更改过的文件+表示大于n,-n表示n天以内-另外还有-atime和-ctime用法类似-newer file1 ! -newer file2 表示查...
利用Node.js进行构建本地

利用Node.js进行构建本地

Node.js是一个基于Google Chrome浏览器v8 javascript执行引擎的异步I/O事件驱动的运行平台。直从2009年诞生开始,已经在业界得到了很多的关注,在这里也必要多说,如果你还不清楚的,请移步到Node官网。在这里我们要讲的是用Node.js来构建本地Build。构建本地Build,我们已经有很多选择,如Ant,Maven,Gradle等。为什么我们还需要Node.js?对于我们的开发中会有一些小的基本自动化构建,如文件的监控(Le...
利用Android的传感器改变背景颜色

利用Android的传感器改变背景颜色

最近许多程序都使用了Android机硬件的传感器(Sensor),其中传感器又分为好几种,比如方向,加速计,温度,磁场等,但是不同机型并不保证包括所有类型的传感器。不过大部分机子都包括加速计,下面写一个简单的demo来演示利用加速计改变应用背景颜色。1.Activity:public class MainActivity extends Activity implements SensorEventListener {private SensorManag...
Annotation的应用场合

Annotation的应用场合

annotation一般作为一种辅助途径,应用在软件框架或工具中,在这些工具类中根据不同的 annontation注解信息采取不同的处理过程或改变相应程序元素(类、方法及成员变量等)的行为。例如:Junit、Struts、Spring等流行工具框架中均广泛使用了annontion。使代码的灵活性大提高。下面自定义一个简单的注解和工具类来演示。Author注解封装了作者的年龄和姓名。(保持策略需设置为RUNTIME,否则无法通过反射机制获取信息)import...
<< 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 >>