2019-07-27 06:40
⁄ 工业·编程
⁄ 共 1303字
sockaddr_in中的sin_family=PF_INET是什么意思?sin_family还有别的值吗?如果有都有什么?这些其他的值都是什么意思?
可以直接看定义所在的winsock.h,AF_INET是internet地址族,包括了tcp、udp什么的,
IPX、pipe什么的就不用AF_INET这个值
PF_INET与AF_INET究竟有什么不同?实际上,原来的想法是每个通信域(如PF_INET)可能对应多个协议(如AF_INET),而事 实上支持多个协议的通信域一直没有实现。因此,在linux内核中,AF...
网络编程阅读全文
2019-07-26 07:29
⁄ 工业·编程
⁄ 共 1391字
要解释这个问题,要先说一下操作系统。英文维基词条对操作系统的定义是:
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
翻译一下就是操作系统是一种管理计算机硬件、软件资源,并为计算机程序提供通用服务的一种系统软件。操作系统可以分为两部分:运行在内核模式的内核部...
GNU, linux阅读全文
2019-07-25 22:56
⁄ 工业·编程
⁄ 共 1155字
1. 头文件
windows下winsock.h或winsock2.h
linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)
2. 初始化
windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译器链接该lib。
linux下不需要
3. 关闭socket
windows下closesocket(...)
linux下close(...)
4. 类型
windows下SOCKET
linux下int(我喜欢用long...
区别, 网络编程阅读全文
2019-07-24 06:14
⁄ 工业·编程
⁄ 共 1482字
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。允许插入的一端为队尾(入队),允许删除(出队)的一端为队头。
顺序存储的队列是采用数组来实现的,但由于数组是静态的,在队列的出队和入队的操作下会出现整个队列后移逐渐占用下标加大位置而下标较小位置为空的“假溢出”现象,所以采用了将存储队列的数组看成是头尾相接的循环结构,即允许队列直接从数组的下标最大的位置延续到下标最小的位置。...
数据结构阅读全文
2019-07-23 06:11
⁄ 工业·编程
⁄ 共 1479字
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
C++在C的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或...
c++, 区别阅读全文
2019-07-22 06:09
⁄ 工业·编程
⁄ 共 5707字
c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。
1.函数默认值
在C++中我们在定义或声明一个函数的时候,有时会...
c++, 区别阅读全文
2019-07-21 06:06
⁄ 工业·编程
⁄ 共 2383字
在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!
一、面向过程语言和面向对象语言
我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和C++的区别,也就是在比较面向过程和面向对象的区别。
1.面向过程和面向对象的区别
(1)面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。
(2)面向对象:面向对象编程就是把问题分解成各个...
c++, 区别阅读全文
2019-07-20 22:18
⁄ 工业·编程
⁄ 共 6184字
mmap基础概念
mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件...
mmap阅读全文
2019-07-19 21:03
⁄ 工业·编程
⁄ 共 5265字
系统调用
操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。
应用程序代码运行在用户模式下,当应用程序需要实现内核模...
linux编程, 文件系统阅读全文
2019-07-05 09:50
⁄ 工业·编程
⁄ 共 3172字
在使用内存映射操作文件之前,我们先按照常规的方式来读写文件,这种方式操作如下:
1,打开或创建文件,得到文件描述符,
2,将内存中的数据以一定的格式和顺序写入文件,或者将文件中的数据以一定的格式和顺序读入到内存;
3,关闭文件描述符;
下边是按照常规方式操作固定格式的文件的方法,包含读写两个示例;
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#inclu...
mmap, 内存管理阅读全文