原文地址:http://www.cnblogs.com/BiffoLee/archive/2011/11/18/2254540.html1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。 大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“...
编程语言有两类 强类型:如C语言。数据具有其特定的类型,先声明定义后才能使用。数据运算时必须符合类型要求(如不能把字符串类型数据直接与整型数据做算数运算) 弱类型:如shell。数据默认为字符型,不应事先声明。数据运算时会自动转换数据类型。 变量变量命名规则: 变量由字母、数字、下划线组成。 不能有数字开头变量类型:本地变量、环境变量、局部变量、特殊变量(内置)、参数变量、只读变量。 注意如果变...
Linux下(Shell脚本 http://www.jbxue.com/jb/shell/)编程的一些注意事项,如编程风格、命名风格等。一、常用技巧ssh user@server bash < /path/to/local/script.sh#ssh到远程服务器执行一个脚本,此命令可以避免将脚本上传到远程服务器ssh user@host cat /path/to/remotefile | diff /path/to/localfile -#比较远程文件和本地文件的差异vim scp://username@host//path/to/somefile#vi一个远程文件curl ifconfig.me#在内网下查看公网...
串口本身,标准和硬件 ?串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。虽然现在在很多个人计算机上,原来用以连接外部设备的串口已经广泛的被USB和Firewire替代;而原来用以连接网络的串口则被以太网替代,还有用以连接终端的串口设备...
练习:1.根据要求编写一个脚本给定一个用户获取其密码警告期限判断用户密码使用期限是否已经小于警告期限如果小于,显示 warning 否则 显示 ok 2.根据要求编写一个脚本给脚本传递两个参数(整数)显示两者之和和乘积 3.根据要求编写一个脚本根据参数一给出的文件名,判断文件是否存在,存在输出ok,不存在输出 “no such file” 4.根据要求编写一个脚本传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并...
初等网络函数介绍(TCP)及示例程序1、socket int socket(int domain, int type,int protocol) domain:说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等). AF_UNIX只能够用于单一的Unix系统进程间通信,而AF_INET是针对Internet的,因而可以允许在远程 主机之间通信(当我们 man socket时发现 domain可选项是 PF_*而不是AF_*,因为glibc是posix的实现 所以用PF代替了AF,不过我们都可以使用的). type:我们网络程序所...
目录1. 进程1.1 概念1.2 查看进程1.3 启动新进程1.3.1 system() 函数1.3.2 fork() 函数1.3.2 exce 系列函数1.3.2.1 exce 系列函数说明1.3 终止进程1.4 等待进程1.4.1 wait() 函数1.4.2 waitpid() 函数2. 管道2.1 概念2.2 匿名管道2.2.1 匿名管道特征2.2.2 pipe() 函数2.3 命名管道2.3.1 命名管道特征2.3.2 创建命名管道命令2.3.3 fifo() 函数3. 信号3.1 概念及特征3.2 系统支持的信号3.3 信号处理3.4 发送信号函数3.4.1 kill()3.4....
【本文谢绝转载原文来自http://990487026.blog.51cto.com】Linux统系统开发12 Socket API编程3 TCP状态转换 多路IO高并发select poll epoll udp组播 线程池TCP 11种状态理解:1,客户端正常发起关闭请求2,客户端与服务端同时发起关闭请求3,FIN_WAIT1直接转变TIME_WAIT4,客户端接收来自服务器的关闭连接请求多路IO转接服务器:select模型poll模型epoll模型udp组播模型线程池模型TCP 11种状态理解:650) this.width=650;" src="...
原文作者:aircraft原文链接:https://www.cnblogs.com/DOMLX/p/9614056.html 一.多种I/O函数前言:之前我们讲的数据传输一般Linux上用write和read,Windows上用send和recv。其实Linux上也可以用send和recv,它与write和read主要区别是它的最后一个参数可以附带一些扩展功能。Linux中的send和recv基础ssize_t send(int sockfd, const void *buf, size_t nbytes, int flags); 成功返回发送的字节数,失败返回-1 参数: sockfd:套...
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> #include <assert.h> #include <stdio.h> #include <string.h>static bool stop = false; static void handle_term( int sig ) // kill pid; in another tty will triggle this signal {stop = true;printf("signal SIGTERM catched...\n"); }static void handle_int(int sig) // ctrl+c;...
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状态:读模式下加锁状态 (读锁)写模式下加锁状态 (写锁)不加锁状态虽然读写锁有读锁、写锁、不加锁三种状态,但其实它只有一把锁,而非三把。前文...
原文:前言本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,然后输出到客户端客户端收到服务端的响应,输出这一行到标准输出服务端代码代码如下:#include <unistd.h> #include <sys/types.h> /* basic system data types */ #include <sys/socket.h> /* basic socket defini...
概述在生活中广播无处不在,像平时在大街上卖物品的商人,在进行推广产品的时候往往都是使用一个喇叭来进行吆喝:“十块钱买不了吃亏,十块钱买不了上当,走过路过千万不要错过”,这就是广播。那么在网络中的广播又是什么样子的呢?网络上的广播指:由一台主机向该主机所在子网内(同一个局域网)的所有主机发送数据的方式。如下图的1 号主机广播给 2、3、4、5 号主机发送数据:实现广播,离不开广播地址,同一个子网(局域网)的...
系统调用所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻...
嵌入式 Linux网络编程(五)——epoll机制一、epoll简介 epoll是在2.6内核中提出的,是select和poll的增强版本。epoll更加灵活,没有描述符限制,使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中。1、epoll函数#include <sys/epoll.h>int epoll_create(int size); 创建一个epoll的句柄,size表示监听的文件描述的数量int epoll_ctl(int epfd, int op, int size, struct epoll_...