Linu系统编程
zhou_xing_23
这个作者很懒,什么都没留下…
展开
-
Linux系统编程-4
1.网络4层模型 网络7层模型 (只是概念未实现 只是为了分析方便)2.tcp/ip协议是整个协议栈最大的协议,所以就以他们为名3.tcp 可靠 面向连接 基于流 udp 不可靠 无连接 基于数据报4.端口号 1024 常用5.流式套接字 原始套接字 测试使用6.大端:高字节放在低地址上 网络字节序 小端:反之 ...原创 2019-03-05 07:25:35 · 207 阅读 · 0 评论 -
stderror 与 stdout 均输出到屏幕, 前者直接输出, 后者换行或者结束输出
今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣。int fprintf(FILE *stream,char *format,[argument]);在此之前先区分一下:printf,sprintf,fprintf。1,printf就是标准输出,在屏幕上打印出一段字符串来。2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。3,fpr...原创 2019-05-28 16:40:58 · 3424 阅读 · 0 评论 -
深入理解pthread_cond_wait、pthread_cond_signal
深入理解pthread_cond_wait、pthread_cond_signal转自:http://blog.csdn.net/yeyuangen/article/details/37593533===============================man pthread_cond_wait的解释==========================LINUX环境下多线程...转载 2019-06-05 10:34:30 · 2380 阅读 · 0 评论 -
linux下使用libmodbus库实现modbusTCP与modbusRTU功能
/****Linux下modbusTCP测试程序****/#include<stdio.h>#include<stdlib.h>#include"modbus.h" int main(void){ modbus_t *mb; uint16_t tab_reg[32]={0}; mb = modbus_new_tcp("192.168.1.22...转载 2019-04-18 03:03:39 · 2300 阅读 · 0 评论 -
IO多路复用之select、poll、epoll
IO多路复用之select、poll、epoll详解目前支持I/O多路复用的系统调用有select,pselect,poll,epoll,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,pselect,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己...转载 2019-03-29 05:25:34 · 127 阅读 · 0 评论 -
关于大小端
x86架构是典型的小端存储格式PowerPc架构是典型的大端存储格式arm默认是小端存储格式,可以调整成大端格式1.大端优点:符号位在所表示数据内存的第一个字节,便于快速判断数据的正负和大小。小端优点:内存的低地址存放数据低字节,大数强制转换小数时效率高,直接丢弃高地址数据即可;cpu在做数值运算时依次从低到高取数运算即可,效率高效。2.IP/TCP网络传输时采用网络字节序...原创 2019-02-14 20:58:05 · 519 阅读 · 0 评论 -
I/O模型与I/O复用
阅读目录1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 4 select/poll/epoll的区别及其Python示例 网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。回到顶部1 基础知识回顾注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~...转载 2019-03-29 03:38:35 · 242 阅读 · 0 评论 -
线程安全
前段时间看完了《并发编程的艺术》,总感觉自己对于并发缺少一些整体的认识。今天借助《Java并发编程实践》,从一些基本概念开始,重新整理一下自己学过并发编程。从并发基础开始,深入进去,系统学习一下并发编程。 编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问。对象的状态是指存储在状态变量(实例或静态域)中的数据。对象的状态还...转载 2019-03-29 01:22:30 · 153 阅读 · 0 评论 -
Linux系统编程-2
1.现行的进程调度算法,高优先级和时间片轮换抢占式 非抢占式死锁 进程互斥 临界资源 临界区2.fork()被调用一次,可以返回两次。3.每起一个进程就会有一个4G的虚拟地址空间,将编译的可执行文件的硬件地址映射到虚拟地址空间(MMU)。32位操作系统,4字节指针, 4G1G 内核态 3G 用户态 (数据段 /bbs,代码段,堆栈,共享空间)4.vfo...原创 2019-01-14 18:29:52 · 114 阅读 · 0 评论 -
Linux系统编程-1
1.open与fopen,write与fwrite等等的区别(1)一个是系统调用,一个是c库函数(2)前者依赖于Linux平台,后者只要有c库就可以使用。(3)前者直接软中断到内核态运行,I/O操作频繁,效率不高,后者在进程结束后将虚拟内存中的缓存通过一次性的I/O读写保存到硬盘,效率高。2.文件创建,打开,读写操作。其中读和写操作会使文件指针偏移,所以会配合fseek/lseek...原创 2019-01-12 19:23:49 · 198 阅读 · 0 评论 -
Linux系统编程-3
1.man 命令 man1 ~ man8 man1: 系统用户 man2: 系统调用 man3: C库调用 man4: 设备文件及特殊文件 man5: 配置文件格式 man6: 游戏相关 ma...原创 2019-03-04 15:26:11 · 220 阅读 · 0 评论 -
函数指针
函数指针的意义在同一个接口函数中使用一样的形参,在不同的时间情境下产生不同的效果(自行定义函数名和函数体)。#include <stdio.h>typedef void (*handler)(int); // 声明一个函数指针类型 便于使用 否则作为返回值怎么写void Print(int data) // 确定函数体和函数名{ ...原创 2019-01-14 15:41:43 · 88 阅读 · 0 评论 -
Linux 的虚拟文件系统
1,引言Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的 操作可以跨文件系统而执行。如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘;而这样的操作涉及到两个不同的文...转载 2019-03-05 12:42:20 · 245 阅读 · 0 评论 -
linux 6种工作模式
这是因为Linux操作系统有六种不同的运行级(run level),在不同的运行级下,系统有着不同的状态,这六种运行级分别为: 0:停机(记住不要把initdefault 设置为0,因为这样会使Linux无法启动 ) 1:单用户模式 2:多用户,但是没有 NFS 。 3:完全多用户模式,标准的运行级。 ...原创 2019-08-15 18:00:00 · 2402 阅读 · 1 评论