![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
Cassie~
hello world!
展开
-
Linux 的 TCP 编程
TCP是TCP/IP协议族中面向连接的可靠协议,本文将介绍其工作流程以及在Linux中对其进行编程的方法。TCP基础同其他任何协议栈一样, TCP向相邻的高层提供服务。因为TCP的上一层就是应用层,因此,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。应用程序通过编程调用 TCP 并使用TCP服务,提供需要准备发送的数据,用来区分接收数据应用的目的地址和端口号。通常情况下, ...原创 2019-12-09 12:22:40 · 588 阅读 · 0 评论 -
Linux C 网络_建立连接函数
当使用 socket 函数建立一个套接字并且绑定了地址之后,即可使用connect函数来和服务器建立一个连接。#include <sys/types.h>#include <sys/socket.h>int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);其中参数 sockfd ...原创 2019-11-18 21:50:26 · 429 阅读 · 0 评论 -
Linux C 网络_绑定套接字函数
在创立了套接字之后需要将本地地址和套接字绑定在一起,此时可以调用 bind 函数。#include <sys/types.h>#include <sys/socket.h>int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);参数 sockfd 是使用 socket 函数创建的套接...原创 2019-11-18 20:36:46 · 665 阅读 · 0 评论 -
Linux C 网络_创建套接字描述符函数
Linux 使用 socket 函数来创建一个套接字描述符。#include <sys/types.h>#include <sys/socket.h>int socket(int domain, int type, int protocol);如果函数调用成功,则返回套接字的描述符,是一个正整数,如果函数调用失败则返回 -1。对函数中的各个参数描述如下:**...原创 2019-11-18 20:08:32 · 463 阅读 · 0 评论 -
Linux C 网络_域名转换函数族
在实际的网络应用中,常常会使用类似 “www sina. com.cn" 这样的域名替代 IP 地址来标识一个服务器,所以需要函数将域名和实际的 IP 地址进行转换。Linux 在 netdb.h 头文件中定义了一个结构体,用于描述一个主机的相关参数,其形式如下:struct hostent{ char *h_name;//主机的正式名称 char *h_aliases;//...原创 2019-11-13 21:01:28 · 167 阅读 · 0 评论 -
Linux C 网络_IP地址转换函数族
通常 IP 地址会被表示为 “192.168.1.1” 这样的 “点分十进制” 方式,而在 Linux 的网络编程中会使用32位二进制值,所以 Limux 提供了函数族用于将这两个数值进行转换,这些函数包括 inet_aton、inet_ntoa 和 inet_addr 等。IP 地址转换函数族inet_aton 函数用于将点分十进制数的 IP 地址转换成为网络字节序的 32 位二进制数值。...原创 2019-11-13 20:31:10 · 1028 阅读 · 0 评论 -
Linux C 网络_字节操作函数族
套接字地址为多字节数据而不是以空字符结尾,所以 Linux 提供了两组函数来处理这个多字节数据。1. 第一组函数第一组函数是和 BSD 系统兼容的函数,包括了 bzero、beopy 和 bcmp。函数 bzero 将参数 s 指定的内存的前 n 个字节设置为 0,通常用它来将套接字地址清零。#include <strings.h>void bzero(void *s, ...原创 2019-11-12 22:40:03 · 145 阅读 · 0 评论 -
Linux C 网络_字节顺序转换函数
字节顺序转换函数计算机内部的数据存储通常有两种:大端模式:高位字节优先。(高位存在低地址)小端模式:低位字节优先。(低位存在低地址)以32位宽度的数据0x12345678为例,大端模式和小端模式的存放方法如下表:内存地址0x80000x80010x80020x8003大端模式0x120x340x 560x78小端模式0x780x560x3...原创 2019-11-12 22:08:21 · 306 阅读 · 0 评论 -
Linux 的端口和套接字
Linux 的端口是一个逻辑概念,其由 TCP/IP 协议定义,是一个 0–65535 之间的数字,可以分为常用的“固定”端口和通用端口两个部分。“固定”端口是指一些常用的软件或者 TCP/IP 协议中确定和公布的,通常来说不会被其他程序使用。Linux 中的常见“固定”端口和对应的协议协议端口号FTP21TELNET23TFTP69SNMP16...原创 2019-11-06 17:40:57 · 555 阅读 · 0 评论 -
Linux 套接字的结构定义
Linux 在头文件 sys/socket.h 中定义了一种通用的套接字结构类型,以供不同的协议进行调用,对其说明如下:struct sockaddr{ unsigned short int sa_family;//套接字协议地址类型 unsigned char sa_data[14];//14字节的协议地址,包括IP地址和端口};sa family:套接字的协议族地...原创 2019-11-06 17:00:03 · 376 阅读 · 1 评论 -
Linux 进程的基础属性
Linux系统上所有运行的任务都可以是一个进程,每个用户任务、每个系统管理,都可以称之为进程,Linux用分时管理的方法使所有的任务共同分享系统资源。进程的定义:在自身的虚拟地址空间运行的一个单独程序。进程是动态的,程序是静态的,进程由程序产生,但不是程序。进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序,一个程序可以启动多个进程。1. 进程的四要素要有一段程序代码以供该程序...原创 2019-11-05 09:28:58 · 543 阅读 · 0 评论 -
Linux 的进程标识方法
1. 进程描述符2. 进程标识符3. Linux进程的用户4. 进程标识的获取实例原创 2019-11-01 21:18:26 · 2132 阅读 · 0 评论 -
Linux 退出进程和销毁进程
退出进程当一个进程执行结束后必须要退出,退出时内核会进行一系列的相应操作。在 Linux 中,共有 8 种进程的退出方法,其中包括 5 种正常的方法和 3 种异常的方法。通常来说 Linux 的应用代码会调用 exit 系列函数来退出一个进程,对其标准调用格式说明如下:#include<stdlib.h>#include<unist.h>void exit(int...原创 2019-10-25 08:43:28 · 1414 阅读 · 0 评论 -
Linux 的进程操作(执行进程)
如果需要在子进程中执行一些自定义的动作,则需要调用 exec 函数族。当进程调用 exec 系列函数的时候,该进程执行的程序被立即替换为新的程序,而新程序则从 main 函数开始执行,并立刻替换掉了当前进程的正文段、数据段、堆和堆栈,需要注意的是其进程标识符和进程描述符是不会改变的。1. exec函数族基础exec函数族提供了一一个在进程中启动另一个程序执行的方法,其可以根据指定的文件名或目...原创 2019-10-23 17:55:06 · 601 阅读 · 0 评论 -
Linux 的进程操作(创建进程)
在Linux中,创建一个新进程的唯一方法是由某个已存在的进程调用 fork 或 vfork 函数,被创建的新进程称为子进程(child process),已存在的进程称为父进程(father process)。1. fork函数基础#include <unistd.h>pid_t fork(void);用户可以通过 fork 函数的返回值来分辨父进程和子进程。2. 子进程和父...原创 2019-10-21 21:35:40 · 1327 阅读 · 0 评论 -
Linux 代码编辑工具 vim
vim是一个著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性,被推崇为类Vi编辑器中最好的一个。一、vim 的使用Linux下默认不能使用鼠标,因此为了能够插入,删除,复制,粘贴数据,vim 将操作分为12种模式,常用的有三种,分别是:普通模式,插入模式,底行模式。普通/正常/命令模式:完成命令操作,如移动光标,复制,粘贴,删除(剪切),撤销等。插入模式:插入数...原创 2019-07-26 18:26:51 · 547 阅读 · 0 评论 -
Linux 软件包管理器 yum
yum软件包管理工具:解决依赖和兼容性问题。一、查看软件包通过 yum list 命令可以罗列出当前一共有哪些软件包。由于软件包的数目可能非常的多,我们需要使用 grep 命令筛选出我们关注的软件包。如:yum list | grep gcc会出现如下界面:注:yum需要在联网状态下才能正常工作。软件包名称:主版本号.次版本号.源程序发行号.软件包的发行号.主机平台.CPU架构...原创 2019-07-26 17:43:54 · 323 阅读 · 0 评论 -
Linux_线程基础
线程的概念线程(thread)是操作系统能够进行运算调度的最小单位。它包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每条线程并行执行不同的任务。内核线程用户线程多线程中:CPU的基本单位定 义:程序执行流的最小单元在一个程序⾥里的一个执⾏行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的 控制序...原创 2019-09-06 16:56:37 · 137 阅读 · 0 评论 -
Linux_线程操作(线程控制)
线程的操作包括线程的创建,退出和终止,阻碍和分离,取消和清理等。1. 创建线程在Linux中,可以调用 pthread_create 函数创建一个新的线程,对其标准调用格式说明如下:#include <pthread.h>int pthread_create(pthread_t *thread,pthread_attr_t *attr,void*(*start_routine)...原创 2019-09-07 10:19:21 · 229 阅读 · 0 评论 -
Linux_线程的同步
线程安全线程的同步线程的互斥原创 2019-09-09 17:04:36 · 144 阅读 · 0 评论 -
Linux 的网络通信模型
一、OSI 网络模型计算机网络模型是为了简化网络的研究、设计与实现而抽象出来的一种结构模型, 通常采用层次模型。在每个层次模型中,往往将系统所要实现的复杂功能分化为若干个相对简单的细小功能,每一项分功能以相对独立的方式去实现。开放系统互联参考模型OSI (Open Systcm Interconnection Reference Mode)是国际标准化组织(ISO)提出的一个设计和描述网络通信...原创 2019-09-29 17:43:37 · 312 阅读 · 0 评论 -
Linux常用基础指令
命令的使用规则:命令名 [功能选项] [源操作对象] [目标操作对象]01. ls 指令语法:ls [选项] [目录或文件]功能:对于目录,列出该目录下所有子目录和文件。对于文件,列出文件名以及其它信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。(. 表示当前所在路径 , . . 表示当前所在上一层路径,每个目录下都有. 和 .. 目...原创 2019-07-20 11:11:14 · 198 阅读 · 0 评论