狂自私

导航

2018年4月23日 #

C语言复习:内存模型2

摘要: 函数调用模型 基本原理 实际上就是不断的从一个内存跳到另一个内存。 函数调用变量传递分析 一个主程序有n函数组成,c++编译器会建立有几个堆区?有几个栈区? 答:一个程序只有一个堆区和一个栈区。 函数嵌套调用时,实参地址传给形参后,C++编译器如何管理变量的生命周期? 上一级的变量在下一级调用中可以使用,传参后上级变量依旧存在。下级的变量不能在上级中调用,在堆区开辟的变量除外。... 阅读全文

posted @ 2018-04-23 09:09 狂自私 阅读(156) 评论(0) 推荐(0) 编辑

C语言复习:内存模型1

摘要: 数据类型本质分析 数据类型概念 "类型"是对数据的抽象; 类型相同的数据有相同的表现形式/存储格式以及相关的操作; 程序中使用的所有数据都必定属于某一种数据类型; 数据类型本质思考 数据类型和内存有关系吗? 数据类型占据大小一定的内存空间. C/C++为什么会引入数据类型? 不同的数据类型所对应的处 阅读全文

posted @ 2018-04-23 08:38 狂自私 阅读(384) 评论(0) 推荐(1) 编辑

void类型详解

摘要: void含义 void的字面意思是"无类型",void*则为"无类型指针",void*可以指向任何类型的数据。 void几乎只有"注释"和限制程序的作用,定义一个void变量没有意义,不妨试着定义: void a; 这行语句编译时会出错。不过,即使void a的编译不会出错,它也没有任何实际意义。 void真正发挥的作用在于: (1)对函数返回的限定; (2)对函数参数的限定。 众所周知,如果指针... 阅读全文

posted @ 2018-04-23 08:04 狂自私 阅读(5282) 评论(0) 推荐(0) 编辑

2018年4月16日 #

Shell脚本语法

摘要: 条件测试 命令test或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反)。例如测试两个数的大小关系: itcast@ubuntu:~$ var=2 itcast@ubuntu:~$ test $var -gt 1 itcast@ubuntu:~$ echo $? ... 阅读全文

posted @ 2018-04-16 09:20 狂自私 阅读(542) 评论(0) 推荐(0) 编辑

2018年4月12日 #

shell编程:基本语法

摘要: 要掌握一门语言,就要先掌握它的语法.如同C语言一般,shell也有自己的语法. 变量 按照惯例,Shell变量通常由字母加下划线开头,由任意长度的字母、数字、下划线组成。有两种类型的Shell变量: 环境变量 环境变量可以从父进程传给子进程,因此Shell进程的环境变量可以从当前Shell进程传给fork出来的子进程。用printenv命令可以显示当前Shell进程的环境变量。 本地变量 只存在... 阅读全文

posted @ 2018-04-12 14:22 狂自私 阅读(194) 评论(0) 推荐(0) 编辑

Shell编程:小白初步

摘要: shell类型: shell的历史网络上有一大堆,这里就不介绍了.但是我们的Linux系统上是有许多种shell的我们可以查看:使用命令 vi /etc/passwd 可以查看用户对应的shell(其中最后一列显示了用户对应的shell类型):下图就是我的Linux上所有用户对应的shell: 这里我就介绍几种: sh(Bourne Shell):由Steve Bourne开发,各种UNIX系... 阅读全文

posted @ 2018-04-12 14:02 狂自私 阅读(381) 评论(0) 推荐(0) 编辑

2018年4月10日 #

Linux:TCP状态/半关闭/2MSL/端口复用

摘要: TCP状态 CLOSED:表示初始状态。 LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。 SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。 SYN_RCVD: 该状态... 阅读全文

posted @ 2018-04-10 10:56 狂自私 阅读(3304) 评论(4) 推荐(1) 编辑

2018年4月8日 #

Linux:简单的并发服务器实现

摘要: 我前两天实现了一个简单的服务器和一个对应的客户端,也简单的解决了一些错误检查和常用的函数的封装,但是那个服务器的一次只能连接一个客户端,鸡肋,太鸡肋了,今天我来实现可以连接多个客户端的服务器实例:多进程并发服务器。 使用多进程并发服务器时要考虑以下几点: 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符) 系统内创建进程个数(与内存大小相关) 进程创建过多是否降低整... 阅读全文

posted @ 2018-04-08 09:59 狂自私 阅读(169) 评论(0) 推荐(0) 编辑

Linux:简单的并发服务器实现

摘要: 我前两天实现了一个简单的服务器和一个对应的客户端,也简单的解决了一些错误检查和常用的函数的封装,但是那个服务器的一次只能连接一个客户端,鸡肋,太鸡肋了,今天我来实现可以连接多个客户端的服务器实例:多进程并发服务器。 使用多进程并发服务器时要考虑以下几点: 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符) 系统内创建进程个数(与内存大小相关) 进程创建过多是否降低整... 阅读全文

posted @ 2018-04-08 09:58 狂自私 阅读(199) 评论(0) 推荐(0) 编辑

2018年4月7日 #

Linux:服务器/客户端API调用错误检查

摘要: 昨天和今天上午,我分别实现简单的服务器和客户端,运行之后表示没问题,一切正常。但是这还是有问题的,最大的一个就是没有错误检查。现在我们来加上错误检查: 服务器的代码: #include #include #include #include ... 阅读全文

posted @ 2018-04-07 18:11 狂自私 阅读(525) 评论(0) 推荐(0) 编辑