比如像Linux这么庞大的项目,如果没有统一风格,那么整个操作就像一坨屎一样;规定了独特的编码风格,也可以让读者更加清晰的去理解。...代码编码风格很多(驼峰命名法,匈牙利命名法)下面我来说说Linux的编码风格: ❤1....❤9. do{} while(0)语句 Linux中,do{}while(0)的用法主要用于宏定义。...导致else分支没有对应的if,编译出错, ②如果没有else分支,也会出问题,FREE中的第二条语句无论if条件是否成立,都会被执行 ❤10. goto语句 之前有人跟我说尽量不要使用goto,但是linux
shell 学习 hello world 编辑shell文件 vim hello.sh #!...说明文件类型,类似windows文件后缀(.exe), linux 根据 #!.../hello.sh bash被执行实际是linux另外开了一个进程来运行的。 变量 script 设置的变量名称: $0 /path/scriptname 命令名称,$1......Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则 首个字符必须为字母(a-z,A-Z) 或者_ 中间不能有空格,可以使用下划线(_) 不能使用其他标点符号 需要给变量赋值时,写成变量名...select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do break; done echo "You have selected $var" while
(2)默认定义的变量只在当前的shell里可以使用,无法在子shell使用。要想定义的变量让所有的shell都可以用,要在系统启动时把它定义为全局变量
第一章 TCP网络编程 1.1 socket创建套接字 #include #include int socket(int domain, int...第二章 UDP网络编程 2.1 UDP协议创建流程 2.2 数据报收发函数 2.2.1 recvfrom函数 UDP使用recvfrom()函数接收数据,他类似于标准的read(),但是在recvfrom...会导致SIGPIPE信号产生,如果不处理,系统默认的处理方式就终止进程) signal(SIGPIPE,SIG_IGN); //忽略SIGPIPE信号 3.8 获取网络底层缓冲区发送剩余字节数 在网络编程时...linux提供了ioctl(fd, SIOCOUTQ, &count)方法来查询一个tcp socket的write buffer是否清空。发送方一般可以用这个方法来判断对端是否收到报文。...当底层网卡将缓冲区的数据全部发送成功时,获取的count=0 #include #include int value; ioctl(
6.3.1 多个进程之间的关系 进程组:getpgrp(void)用来返回进程组号 setpgid用来创建一个新的进程组或将一个进程加入另一个已存在的进程组 6...
8.1 流简介 打开:fopen() 标准输入、标准输出、标准错误 关闭:fclose(); 8.2.1 流的打开与关闭 fopen 打开特定的文件 ...
第一章 c语言基础 linux概述 虚拟文件系统VFS 进程通信机制:管道,信号 消息队列 信号灯 共享内存 第二章 vim与emacs 两种主流编辑器:vim emacs vi 的含义
7.1 文件系统简介 7.1.1 文件 文件类型:普通文件、目录文件、链接文件、设备文件、管道文件 文件权限:r w x 访问权限:文件所有者、文件所有者同组用...
C语言作为最基础的编程语言,30年虚弱的患病率。 无论是准备做 PHP/Java/Python/Golang 开发学习。...【Linux C语言编程学习材料】 [ 高速学习书籍 ] 《Linux C编程一站式学习》 http://item.jd.com/10067533.html [ 长期扎实学习书籍 ] C语言学习材料:.../Unix编程: Linux高级程序设计(第3版)http://item.jd.com/11116797.html UNIX环境高级编程(第3版) http://item.jd.com/11469694....html Linux网络编程(第2版)http://item.jd.com/11397772.html UNIX网络编程 卷1 http://item.jd.com/1027878366.html...[ 高级网络编程学习书籍 ] 《Linux高性能server编程》 http://item.jd.com/11252777.html 《Linux多线程服务端编程:使用muduo C++网络库》 http
在前面的文件中,我们介绍了linux网络编程中与IP相关的知识和常用的函数总结,本文针对具体的UDP通信,来详细的介绍UDP通信的使用,包括UDP通信中的点对点通信,多播,广播等。...一、UDP通信中服务端和客户端的基本编程框架 与TCP相比较,UDP是面向无连接的通信方式,不需要connect、listen、accept等函数操作,不用维护TCP的连接、断开等状态。...3.2、组播的使用 组播在基本UDP编程框架的基础上,使用setsockopt()函数和getsockopt()函数来实现,需要设置IP层的相关参数(第二个参数为 IPPROTO_IP),其原型如下:...设置组播的默认默认网络接口,会从给定的网络接口发送,另一个网络接口会忽略此数据 选项IP_ADD_MEMBERSHIP和IP_DROP_MEMBERSHIP:加入或者退出一个组播组其参数为一个结构体 使用组播的一个基本编程流程如下
文章目录 前言 一、UDP是什么 二、UDP 数据报服务特点 二、UDP 编程流程 1.服务器 2.客户端 3.输出结果 总结 前言 浅谈UDP。...二、UDP 编程流程 1.服务器 代码如下(示例): int main() { int sockfd = socket(AF_INET,SOCK_DGRAM,0); assert( sockfd
Linux网络编程--网络知识介绍 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 1.1 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序...Linux网络编程--初等网络函数介绍(TCP) Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用,会返回一个 通讯的文件描述符, 我们可以将这个描述符看成普通的文件的描述符来操作..., 这就是linux的设备无关性的好处。
Linux Socket编程 ---- 目录 前言 Socket的功能 Socket基础 Socket类型 基本结构 基本转换函数 基本Socket使用 TCP Socket实例 UDP Socket实例...疑难问题记录 总结 ---- 前言 socket(套接字)是网络编程编程的一种技巧。...主要参考《Linux网络编程》。本篇源码获取方式见文底小字。 Socket的功能 socket是通过标准的UNIX文件描述符和其他的程序通讯的一个方法。...基本Socket使用 Linux同时支持面向连接和不连接类型的套接字。在面向连接的通讯中服务器和客户机在交换数据之前先要建立一个连接;在不连接通讯中数据被作为信息的一部分被交换。 ...网络编程非常有趣,能够实现天南海北之间的通讯,让远距离的人与人、人与物或者物与物之间产生联系,很有意思! 最后 用心感悟,认真记录,写好每一篇文章,分享每一框干货。
注意: 在 i386 平台上 Red Hat Linux 的 页面大小 为 4096 字节。但是,您可以使用 bigpages ,它支持配置更大的内存页面尺寸。...SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 5.套接字:socket,上面介绍的通讯手段限制了作用域,套接字编程应用则更为广泛...《unix网络编程卷一》对socket编程有详细的介绍。...也属于进程动态分配的内存. 32位就是4G的寻址空间,linux将其分为两部分,虚拟地址从0xC0000000到0xffffffff用于内核,为系统空间。较低的3G字节为用户空间。...而线程的栈空间大小在linux下可以使用ulimit -s查询,我的环境下默认是8192字节。windows下一说默认1M,一说2M。
Linux进程编程 3.1 fork系统调用 3.1.1 fork工作原理 3.1.2 fork函数 3.1.3 fork编程示例 3.1.4 小结 3.2 exec系统调用 3.2.1 exec函数族作用...执行过程如下: Linux内核在进程表中为子进程分配一个表项,然后分配PID。...子进程表项的内容来自父进程,fork会将父进程的表项复制为副本,并分配给子进程; Linux内核使父进程的文件表和索引表的节点自增1,创建用户及上下文; 将父进程上下文复制到子进程上下文空间中; fork...文件; 按下i键进入编辑模式,输入fork编程示例,该示例创建一个子进程,通过fork()函数返回值判断进程是子进程还是父进程,并打印信息。...这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
# Linux Shell编程 # 为什么要学习Shell编程 Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。...对于大数据程序员来说,需要编写Shell程序来管理集群 # Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动...shcode/hello.sh 方式二(sh+脚本) 说明:不用赋予脚本+x权限,直接执行即可 比如: sh hello.sh 也可以使用绝对路径 # Shell的变量 # Shell变量介绍 Linux...# 运算符 # 基本介绍 学习如何在shell中进行各种运算操作 # 基本语法 “运算式或[运算式]"或者expr m+ n //expression表达式 注意expr运算符间要有空格,如果希望将expr...#案例2:读取控制台输入一个NUM2值,在10秒内输入 read -t 10 -p "请输入一个数NUM2=" NUM2 echo "你输入的NUM2=$NUM2" # 函数 # 函数介绍 shell编程和其它编程语言一样
好了,这本书的学习暂时告一段落。 最后感谢 游双 的《Linux高性能服务器编程》
1、当用户输入1时,输出 “start installing lamp.” 然后执行 /server/script/lamp.sh, 脚本内容输出 ...
(1)Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell (2)Shell也是一门编程语言,即shell脚本 (3)一个系统可以存在多个shell.../helloWorld.sh 注意: 区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享 3:Shell中的变量: Linux Shell中的变量分为“系统变量”和“用户自定义变量
pool); return 0; } 编译的时候记得带上2个共享库 sudo gcc -g threadpool_server.c -lrt -lpthread 最后,再次感谢 游双 大佬的《Linux...高性能服务器编程》。
领取专属 10元无门槛券
手把手带您无忧上云