- 博客(16)
- 收藏
- 关注
原创 select函数总结
select函数总结 阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,...
2012-03-30 21:44:52 93
原创 js去字符串中的空格函数
Javascript中为String对象添加 Trim() 方法 <script language=Javascript> //自己动手为string添加Trim function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");} fu...
2012-03-30 12:02:41 160
原创 Linux 网桥配置命令:brctl
Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联:思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个bridge口分配一个地址,其他子网微机配置网关为bridge口的地址便可以了。当然,因为是设备是网关模式,路由和nat也是必须的了。如果设备本身便是网桥模式,那么路由和nat便可以省掉了。 ...
2012-03-29 11:16:22 2491
原创 使用套接字 ioctl 命令
使用 ioctl 套接字控制选项通常,网络程序需要了解系统中所有有关网络接口和 IP 地址的可用信息。现在,未来的应用程序可以支持 IPv4 和 IPv6 双协议栈。ioctl 结构需要对指针进行遍历和操作,以处理 IPv4 和 IPv6 地址在长度上的差别(除了使用合适的套接字结构 sockaddr_in6 或 sockaddr_storage 之外)。 AIX Version 5.3 ...
2012-03-27 16:06:45 276
原创 linux route命令
# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.8.0 * 255.255.255.0 U 0 0 0 eth0default...
2012-03-27 15:49:37 106
原创 window route命令
使用路由方式。使用route命令。 -- Route命令的正确用法 使用 Route 命令行工具查看并编辑计算机的 IP 路由表。Route 命令和语法如下所示: route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] -f 清除所有网关入口的路由表。 -p ...
2012-03-27 15:08:16 109
原创 创建守护进程(Daemon)
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂,复杂的是各种版本的Un...
2012-03-15 00:29:17 91
原创 Linux中的僵尸进程
Linux中的僵尸进程 解释一:[1,2]●Unix编程中所谓"僵尸进程"指什么,什么情况下会产生僵尸进程,如何杀掉僵尸进程:在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份ki...
2012-03-13 11:55:18 86
原创 详解C语言中volatile关键字
详解C语言中volatile关键字volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:...
2012-03-13 11:30:49 93
原创 宏定义中的#、#@与##
有些用法一般的C语言书籍中没有,但确实存在,如宏定义中的#、#@与##,说明如下:1、#为后面的宏形参添加双引号。例:#define SINGLESHARP(arg) #argSINGLESHARP(singlesharp) <==> "singlesharp"2、#@为后面的宏形参添加单引号。例:#define SINGLESHARPWITHAT(arg) #@argSINGLESH...
2012-03-12 17:56:35 188
原创 C程序怎样组织更有结构性
摘自:http://blog.chinaunix.net/space.php?uid=23481299&do=blog&id=3124965在C语言的应用领域,如通讯领域和嵌入式系统领域,一个的软件项目通常包含很多复杂的功能,实现这个项目不 是一个程序员单枪匹马可以胜任的,往往需要一个团队的有效合作,另外,在一个以C代码为主的完整的项目中,经常也需要加入一些其他语言的代...
2012-03-08 16:17:58 98
原创 linux下dup/dup2函数的用法2
相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用:Stevens said:(1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描...
2012-03-08 10:37:50 143
原创 指针常量与常量指针的区别
指针常量与常量指针的区别: type *const pt;//定义了一个指针常量 不能修改pt的指向,但可以修改指向里面的数据。 const type* pt;//定义了一个指向常量的指针 可以修改pt的指向,但不可以修改指向里面的数据还有一种就是指向常量的指针常量了 const type *const pt; 既不能修改pt的指向,也不能修改pt指向里面的...
2012-03-03 20:47:42 105
原创 C中的预编译宏定义
原文链接:http://www.uml.org.cn/c++/200902104.asp在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编...
2012-03-02 11:46:57 91
原创 Linux环境变量的设置和查看方法
1. 显示环境变量HOME $ echo $HOME /home/redbooks2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ echo $HELLO Hello!3. 使用env命令显示所有的环境变量 $ env HOSTNAME=redbooks.safe.org PVM_RSH=/usr/bi...
2012-03-01 17:08:19 92
原创 linux_C_environ变量
environ变量:environ变量的声明如下:#include <stdlib.h>extern char **environ;这个变量是用来打印环境变量。#include <stdio.h>#include <stdlib.h>extern char **environ;int main(){ char **env = environ; while(*...
2012-03-01 17:04:02 79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人