【关于unix环境高级编程、Linux程序设计两部书浅谈】教程文章相关的互联网学习教程文章

【UNIX环境高级编程 | 7】函数signal【代码】【图】

命令形参命令行参数是使用main()函数参数来处理的,其中,argc是指传入参数的个数,argv[]是一个指针数组,指向传递给程序的每个参数。应当指出的是, argv[0]存储程序的名称,argv[1]是一个指向第一个命令行参数的指针,argv[n]是最后一个参数。 如果没有提供任何参数,argc 将为1,否则,如果传递了一个参数,argc将被设置为2。多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号...

UNIX网络编程读书笔记:名字与地址转换【代码】【图】

概述在名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr:在主机名字与IPv4地址之间进行转换。仅仅支持IPv4.getservbyname和getservbyport:在服务名字和端口号之间进行转换。getaddrinfo和getnameinfo:用于主机名字和IP地址之间以及服务名字和端口号之间的转换。(这两个函数是协议无关的)域名系统域名系统(Domain Name System,简称DNS)主要用于主机名字和IP地址之间的映射。资源记录DNS中的条目称为资源记录(...

UNIX网络编程-send、recv、sendto、recvfrom详解【代码】

send、recv和sendto、recvfrom,一般情况下,send、recv在TCP协议下使用,sendto、recvfrom在UDP协议下使用,也可以在TCP协议下使用,不过用的很少。1、send这里只描述同步socket的send函数的执行流程。s:套接字 | buf:存储发送数据 | len:发送数据长度 当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len小于或者等于s的发送缓...

UNIX网络编程第30章客户服务器程序设计范式 草稿【图】

原文:http://www.cnblogs.com/sunyongjie1984/p/4333035.html

Unix高级编程之标准IO

c标准io---带缓存的io优势: 带缓存(合并系统调用)缺点: 实时性低缓存的类型: 行缓存:stdin stdout(缓存区是有大小) 全缓存:文件 无缓存:stderr1.流 打开文件的标识 2.FILE类型 结构体类型: 文件描述符 缓存区的地址 缓存的大小 出错标识3.流的打开 fopen(3); errno全局变量 定义的宏: /usr/include/asm-generic/errno-base.h /usr/include/asm-generic/errno.h strerror(3); perror(3);4.流的操作(读写) <1>字节 ...

Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间【图】

1.问:知道程序执行时间我们能够做什么?在《C++应用程序性能优化》一书中,假设大家读过相信大家一定对性能优化这一块很上心,文中总是对优化前后的时间对照很直观给我们一个感受。那么我们怎样利用C语言提供的库函数获取一个应用程序的各阶段的执行效率,通过数据分析出该程序的瓶颈而且做出对应的优化。本文给大家解说的clock()函数。2.我们首先看一看C/C++标准文档对于clock()函数的解说3.函数原型 clock_t clock (void);函数...

UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程【代码】【图】

lienhua342014-11-08在进程控制三部曲中我们学习了进程的创建、终止以及获取终止状态等的进程控制原语。线程的控制与进程的控制有相似之处,在表 1中我们列出了进程和线程相对应的控制原语。表 1: 进程原语和线程原语的比较进程原语线程原语描述forkpthread_create创建新的控制流exitpthread_exit从现有的控制流中退出waitpidpthread_join从控制流中得到退出状态atexitpthread_cleanup_push注册在退出控制流时调用的函数getpidpthre...

《UNIX环境高级编程》笔记--UNIX域套接字

1.非命名的UNIX域套接字UNIX套接字用于在用一台机器上运行的进程之间通信。UNIX套接字比因特网域套接字的效率更高。UNIX与套接字提供和数据报两种接口,UNIX域数据报服务是可靠的,就不会丢失消息也不会传递出错。UNIX域套接字是套接字和管道之间的混合物。为了创建一对非命名的,相互连接的UNXI域套接字,用户可以使用socketopair函数。#include<sys/socket.h> int socketpari(int domain, int type, int protocol, int sockfd[2]...

Linux/UNIX系统编程手册 练习3.8【图】

闲来无聊看了看 3-1. 使用Linux专有的reboot系统调用重启系统时,必须将第二个参数magic2定义为一组magic号(例如:LINNUX_REBOOT_MAGIC2)。这些号有何意义?(将magic号转换为十六进制数,对解题会有所帮助。)刚看的时候 有点晕就去查了查转换成16进制了 。 结果发现 是彩蛋。。。。 原文:https://www.cnblogs.com/jingchu/p/10262241.html

UNIX环境高级编程第七章【图】

这一章主要知识点包括:程序启动与终止,进程终止exit与_axit,atexit函数。存储空间布局,深层嵌套出错跳出函数,资源查询与更改函数等内容。1.首先从内核传递命令行参数和环境变量值给c启动例程,然后c启动例程调用main函数,main调用其他函数。终止时,可以使用_exit()函数或者_Exit()函数,直接调用内核结束。也可以调用exit()函数,先进行清理处理。(调用各终止处理程序,标准I/O清理程序),然后再进入内核。2.exit函数先调...

UNIX/Linux网络编程基础:图解TCP/IP协议栈【图】

目录1、主机到网络层协议:以太网协议2、IP协议3、网际控制报文协议(ICMP)4、传输控制协议(TCP)5、用户数据报文协议(UDP)6、地址解析协议ARP 联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈。1、主机到网络层协议:以太网协议主机到网络层主要为IP协议和ARP协议提供服务、发送和接收网络数据报。本层中由于要实现跨网和跨设备的互通,有很多的实现方式,这里我们只关注以太网的...

关于unix环境高级编程、Linux程序设计两部书浅谈

unix环境高级编程的术语很多,概念内容,也很多,不过学习概念性质、标准规则类的东西,想必都是这样吧——需要进行拓展的内容很多。Linux程序设计,图文并茂,代码量够足,看起来,感觉难度还可以。linux程序设计这部书,是我第一部接触到的,因为想研究纯后端的东西,所以上面的不少图形界面相关的内容,我都是跳着看——感觉快要放弃这本书了,不过对unix体系,Linux的设计了解了很多东西,也只能是了解的底部,深入的话,需要时...

Unix网络编程随手记——套接字接口函数【代码】

套接字接口(socket interface)是一组函数,它们和Unix I/O函数结合起来,用以创建网络应用。大多数现代系统上都实现套接字接口,包括所有的Unix变种、Windows和Macintosh。1.套接字的基本结构struct sockaddr这个结构用来存储套接字地址。数据定义:1struct sockaddr 2{ 3 unsigned short sa_family; /* address族, AF_xxx */4char sa_data[14]; /* 14 bytes的协议地址 */56 };sa_family 一般来说,都是“AFINET”。...

UNIX网络编程读书笔记:套接口选项【代码】【图】

概述有很多方法来获取和设置影响套接口的选项:getsockopt和setsockopt函数fcntl函数ioctl函数getsockopt和setsockopt函数这两个函数仅用于套接口。#include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, constvoid *optval, socklen_t *optlen); 返回值:0——成功,-1——出错其中,sockfd必须指向一个打开的套接...