摘要:
上述为所包含必备头文件。 以下为定义的静态子串常量 连接到SSH2步骤: (1)建立socket并连接到远程主机SSH2服务(22端口); (2)创建一个LIBSSH2_SESSION 实例并启动它。启动动作包括设置欢迎横幅、交换密钥并且设置加密、压缩和MAC层。 (3)认证:检查主机密钥指纹并检查 阅读全文
摘要:
1.SSH概念 ssh(secure shell),安全外壳协议,由IETF的网络小组所制定。ssh为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来迅 阅读全文
摘要:
编译一个C程序的第1个步骤是预处理(preprocessing)阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作。它的主要任务包括删除注释、插入被#include指令包含的文件的内容、定义和替换由#define指令定义的符合以及确定代码的部分内容是否应该根据一些条件编译指令进行编译。 1. 阅读全文
摘要:
1.命令行参数 C程序的main函数具有两个形参,第1个通常称为argc,它表示命令行参数的数目。第2个称为argv,它指向一组参数值。由于参数的数目并没有内在的限制,所以argv指向这组参数值(本质上说是一个数组)的第一个元素。这些元素的每个都是指向一个参数文本的指针。如果程序需要访问命令行参数, 阅读全文
摘要:
1. 分析:必须确定表达式*f()是如何进行求值的。首先执行的是函数调用操作符(),因为它的优先级高于间接访问操作符。因此,f是一个函数,它的返回值类型是一个指向整型的指针。 2. 分析:确定括号的含义是分析这个声明的一个重要步骤。第2对括号是函数调用操作符,第1对括号只起到聚组的作用。它迫使间接访 阅读全文
摘要:
1.链表的基本概念 链表(linked list)是一些包含数据的节点的集合。链表中的每个节点通过链或指针连接在一起。程序通过指针访问链表中的节点。通常节点是动态分配的。 2.链表的分类 链表可分为:单链表 2.1.单链表 在单链表中,每个节点包含一个指向链表下一节点的指针。链表的最后一个节点的指针 阅读全文
摘要:
第11章 动态内存分配 1.在你的系统中,你能够声明的静态数组最大长度能达到多少?使用动态内存分配,你最大能够获取的内存块有多大? 英文答案原文: This will vary from system to system.There are several things that may affec 阅读全文
摘要:
1.为什么需要使用动态内存分配 数组的元素存储于内存中连续的位置上,当一个数组被声明时,它所需要的内存在编译时就被分配。当你声明数组时,必须用一个编译时常量指定数组的长度。但是,数组的长度常常在运行时才知道,这是由于它所需的内存空间取决于输入数据。为了避免空间的浪费和超出范围的处理,需要使用动态内存 阅读全文
摘要:
1.结构基础知识 1.1 结构声明 通过例子说明结构声明的方式。 (1) 这个声明创建了一个名叫x的变量,它包含三个成员。后面的x是变量列表。 (2) 这个声明创建了包含20个结构的数组y和指向结构的指针z。 警告:虽然这两个声明的结构的成员列表完全相同,但是编译器会把他们当做两种不同的类型。所以z 阅读全文
摘要:
左值:标识了一个特定的位置,我们以后可以在程序中引用它。 右值:指定一个值,该值必然保存于机器的某个地方,但是存储的位置程序员没有办法预测到,也无法保证这个值下次还会存储于那个地方。所以字面值常量不是左值,只能是个右值。 左值:间接访问和下标引用的结果是个左值。 右值:常量,除间接访问和下标引用其余 阅读全文