![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux应用编程
liunx_hello
这个作者很懒,什么都没留下…
展开
-
多路温度采集控制系统(一)菜单的创建及配置文件
实现效果:主要的文件:1、config.h && config.c 配置文件 2、 sys_ipc.h && sys_ipc.c 菜单文件 3、Makefile执行 trace@trace-virtual-machine: make 即可形成...原创 2019-02-24 10:22:33 · 785 阅读 · 2 评论 -
函数fread()与fwrite()的介绍与使用
#include<string.h>#include<stdio.h>#include<stdlib.h>/***********************************功能:从键盘读取学生的 名字、学号、年龄、地址,保存到指定打文件中函数:fopen(),fread(),fwrite()结构:定义一个学生结构体保存每个学生的信...原创 2019-02-13 16:27:10 · 589 阅读 · 0 评论 -
linux文件编程函数fscanf()和fprintf()
linux文件编程2__fscanf() fprintf()#include<stdio.h>#include<stdlib.h>/*************************功能:将一个文件中的数据拷贝到另一个文本文件中函数:fopen() fscanf():*************************/int main(){...原创 2019-02-13 00:59:25 · 559 阅读 · 0 评论 -
linux文件编程基本操作
linux文件编程基本操作#include<stdio.h>#include<stdlib.h>/******************************************功能:打开文本文件,往文本文件中写入信息,当输入字符为‘#’时,停止输入实现:使用文件指针进行操作函数:fputc()*************************...原创 2019-02-13 00:55:48 · 157 阅读 · 0 评论 -
linux中shell编程 文件截断、文件比较运算符、算术运算符
假设有变量 var=http://www.aaa.com/123.htm1. # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm2. ## 号截取,删除左边字符,保留右边字符。ec...转载 2019-02-12 14:42:32 · 342 阅读 · 0 评论 -
linux中shell环境变量的基本使用与操作
1、shell环境变量命令显示变量 root# echo $HOME 查看环境变量HOME 设置、变量 root# export WELCOME=“HE” 设置环境变量WELCOME为HE 查看所有变量 ...原创 2019-02-12 14:13:32 · 1684 阅读 · 0 评论 -
shell脚本的创建于与基本应用
1、创建一个shell脚本root# vim shell_test.sh在编辑器中输入如下:#!/bin/sh #上面的是保存的路径pwddateecho"my shell"2、shell脚本的运行1、需要设置shell脚本的权限chmod u+x shell_test.sh 只可自己执行...原创 2019-02-12 12:09:59 · 142 阅读 · 0 评论 -
fflush(stdin)与fflush(stdout)
1.fflush(stdin):作用:清理标准输入流,把多余的未被保存的数据丢掉。。如:int main(){ int num; char str[10]; cin>>num; cout<<num<<endl; cin>>str; co...转载 2019-02-25 18:39:50 · 209 阅读 · 0 评论 -
atoi()字符转整数的自实现
在C语言中可以通过atoi()函数实现将char 数字 转化为 int 类型例如: char ch[] = "123456"; ---->int i = 123456 char *ch1 = "-5678"; ---->int i = -5678 char ch2[] = " -3456"; ----&g...原创 2019-03-05 16:03:34 · 164 阅读 · 0 评论 -
strcat()字符串的连接自实现
在实现strcat()函数的功能的时候需要考虑到一下几点:strcat(ret,ptr) ===>"ret ptr"1、ptr字符串是否为空2、ret字符串是否要去除结尾的 '\0'3、连接的时候是否会溢出4、是否要在连接完成后的结尾加上 '\0'以下是实现函数功能的代码,注意char *ch = "hello" 这种声明的变量是常量,不能对其改变#...原创 2019-03-05 18:37:43 · 453 阅读 · 0 评论 -
单链表的操作(二)链表的插入与删除
一、单链表的结点插入(1)插入的结点位于空链表(2)插入的结点位于非空链表 插入的链表位于非空链表的头部 插入的链表为与非空链表的尾部 插入的链表位于非空链表的中间部分创建一个单链表结点的插入函数,将输入的学生的序号作为排序,按照从小到大的学号顺序插入学生信息struct student *insert(struct student *head...原创 2019-03-03 10:29:44 · 1262 阅读 · 2 评论 -
管道、消息队列和共享内存三者的特点与区别
管道和消息队列的区别管道(PIPE) 管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会构成双方通过管道传递信息的流水线。管道分为匿名管道和命名管道。(1)匿名管道:管...转载 2019-02-26 19:48:53 · 1835 阅读 · 0 评论 -
单链表的操作(三)链表的遍历、逆序、是否有环
链表和数组作为算法中的两个基本数据结构,在程序设计过程中经常用到。尽管两种结构都可以用来存储一系列的数据,但又各有各的特点。数组的优势,在于可以方便的遍历查找需要的数据。在查询数组指定位置(如查询数组中的第4个数据)的操作中,只需要进行1次操作即可,时间复杂度为O(1)。但是,这种时间上的便利性,是因为数组在内存中占用了连续的空间,在进行类似的查找或者遍历时,本质是指针在内存中的定向偏移。然而...转载 2019-03-03 15:45:44 · 996 阅读 · 0 评论 -
二叉树的应用(一)二叉树的基本原理
作者:Java3y原文:https://blog.csdn.net/java_3y/article/details/79674656一、二叉树就是这么简单本文撇开一些非常苦涩、难以理解的概念来讲讲二叉树,仅入门观看(或复习)…首先,我们来讲讲什么是树:树是一种非线性的数据结构,相对于线性的数据结构(链表、数组)而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会...转载 2019-03-03 17:12:36 · 2670 阅读 · 0 评论 -
死锁,死锁的四个必要条件以及处理策略(详解)
转载来自:https://blog.csdn.net/wljliujuan/article/details/79614019#commentBox一、什么是死锁二、死锁与饥饿三、资源的类型 3.1 可重用资源和消耗性资源 3.1.1 可重用资源(永久性资源) 3.1.2 消耗性资源(临时性资源) 3.2 可抢占资源...转载 2019-03-07 11:17:22 · 766 阅读 · 0 评论 -
C++复习概括
1、内联函数 inline()2、Constexpr()函数3、递归函数4、函数的重载5、构造函数、析构函数、复制构造函数、浅复制&深复制、new &deleye[]6、函数功能声明 func::func() int func::name();7、静态数据成员、静态成员函数 静态数据成员的特性及其声明静态成员:为同一个类不同对象数据成员提供一...原创 2019-03-14 22:12:22 · 148 阅读 · 0 评论 -
逐个翻转每个字符串中的单词,如将I Am a Programmer ---》I mA a remmargorP
给定一个字符串,将字符串中的每个单词逐个翻转。举例如下:输入:“I Am a Programmer ”结果:"I mA a remmargorP "函数形式如下:char *ReversString(char *Source)#include<stdio.h>#include<stdlib.h>#include<string.h>...原创 2019-03-11 22:15:07 · 540 阅读 · 0 评论 -
文件定位函数rewind()和fseek()
转载 2019-02-13 16:38:00 · 368 阅读 · 0 评论 -
IO文件操作函数read()和write()
1、read()和write()的使用函数read()和write()、lseek()和close() 的基本使用与试验,实现文件的写入、读取、移位、关闭#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/types.h>#include<sy...原创 2019-02-13 21:45:16 · 1872 阅读 · 0 评论 -
TCP实现多用户聊天、通讯
创建服务端功能:1、实现10个用户的同时聊天,并且每两个用户之间都能聊天相互发送信息,并且具有群发消息的功能;2、话语过滤功能:例如过滤信息中的fuck;3、..............(另行添加)实现:1、在正常的TCP服务器的代码上进行改进,增加线程,以便实现多个用户的在线聊天;2、函数模块:一个struct 用于收集中转用户的信息:套接字的文件描述符cfd ...原创 2019-02-25 09:42:11 · 1337 阅读 · 0 评论 -
linux网络通讯3次握手和4次挥手
3次握手1、大多数情况下,客户端往服务端发送一个数据包,标志位为SYN(表示建立连接),包号为1000(自己定),数据包的大小为0;<mss 1460>表示数据大小的上限是1460字节;2、服务端在收到客户端的数据包之后,表示收到数据包,发送ACK 1001回写给客户端,ACK是标志位,1001 =1000+1 表示收到客户端发送的1000包号 + 一位标志位SYN,总...原创 2019-02-20 15:38:10 · 208 阅读 · 0 评论 -
linux网络编程之server端和client端的通信实例
server端程序进行测试时:运行server程序新开一个终端,输入命令: nc 127.0.0.1 9527 //端口号为9527在命令行中输入 abc 即可回传得到大写的ABC/*server.c */#include<stdio.h>#include<stdlib.h>#include<sys/types.h>...原创 2019-02-19 17:35:14 · 1905 阅读 · 0 评论 -
linux网络编程原理
视频来源:http://v.qq.com/detail/s/sdp001yg24cqadd.html1、OSI七层模型 & TCP/IP 四层模型 分层模型结构: OSI七层模型:物、数、网、传、会、表、应 TCP/IP 4层模型:网、网、传、应 以太网帧协议 ...原创 2019-02-18 22:34:46 · 942 阅读 · 1 评论 -
linux多线程编程实例
对象 操作 Linux Pthread API Windows SDK 库对应 API 线程 创建 pthread_create CreateThread 退出 pthread_exit ThreadExit 等待 pthread_join WaitForSingleObject 互斥锁 创建 pt...原创 2019-02-17 19:13:51 · 388 阅读 · 0 评论 -
linux线程的使用与实例
由于 pthread 头文件不是系统默认的库 所以在编译时要加上 -lpthread GCC编译器这样编译:gcc pthread.c -lpthread -o pthread这样不会产生错误:对‘pthread_create’未定义的引用 ptherad_create():创建线程 函数声明 int pthread_...原创 2019-02-17 12:52:41 · 1024 阅读 · 0 评论 -
深入理解进程和线程
关于进程和线程,大家总是说的一句话是“进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元”。这句话理论上没问题,我们来看看什么是所谓的“资源”呢。什么是计算机资源经典的冯诺依曼结构把计算机系统抽象成 CPU + 存储器 + IO,那么计算机资源无非就两种:1. 计算资源2. 存储资源CPU是计算单元,单纯从CPU的角度来说它是一个黑盒,它只对输入的...转载 2019-02-16 21:29:18 · 225 阅读 · 0 评论 -
linux共享内存
共享内存的创建与读取、打印#include<stdio.h>#include<string.h>#include<fcntl.h>#include<stdlib.h>#include<sys/ipc.h>#include<sys/shm.h>struct sys_data{ float ...原创 2019-02-16 20:54:44 · 105 阅读 · 0 评论 -
linux消息队列
使用 ipcs -q 查看消息队列的消息接收情况 队列消息读取端/*MessageRead.c */#include<stdlib.h>#include<stdio.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#...原创 2019-02-16 19:45:18 · 147 阅读 · 0 评论 -
linux共享内存的创建与通讯实例
创建共享内存,往共享内存里写入数据#include<stdio.h>#include<string.h>#include<fcntl.h>#include<stdlib.h>#include<sys/ipc.h>#include<sys/shm.h>struct sys_data{ f...原创 2019-02-16 19:20:15 · 1506 阅读 · 0 评论 -
linux中信号的程序实例
#include<signal.h>#include<stdio.h>#include<stdlib.h>void func(int sig){ printf("the function of ctrl+c is instead\n");}int main(){ signal(SIGINT,func)...原创 2019-02-16 19:08:19 · 330 阅读 · 0 评论 -
命名管道(有名管道)的使用-例程序
命名管道的读取端 Fifo_read.c#include<sys/types.h>#include<sys/stat.h>#include<errno.h>#include<fcntl.h>#include<stdio.h>#include<string.h>#include<stdlib.h&原创 2019-02-16 18:52:04 · 1058 阅读 · 1 评论 -
管道通信pipe()的使用程序
管道通信:要在新建子进程前建立管道,这样才能使父进程和子进程使用该管道通信先:pipe(fd);后:pid=fork();在建立管道和子进程的时候要判断一下这两个命令有没有运行成功!#include<string.h>#include<stdio.h>#include<sys/types.h>#include<errno.h>...原创 2019-02-14 22:03:03 · 1010 阅读 · 0 评论 -
守护进程的创建与程序
创建一个守护进程,进程的内容为往一个文件里写入一句话,每隔一秒钟写入一句话查看进程ps -x 结束进程kill ??#include<fcntl.h>#include<sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<stdio.h>#incl...原创 2019-02-14 16:01:02 · 398 阅读 · 0 评论 -
exec系列函数(execl,execlp,execle,execv,execvp)使用
转自:http://blog.csdn.net/mathlmx/article/details/45298975?locationNum=4本节目标:exec替换进程映像 exec关联函数组(execl、execlp、execle、execv、execvp)一,exec替换进程映像在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的...转载 2019-02-14 14:06:43 · 225 阅读 · 0 评论 -
子进程创建以及fork()函数的使用
fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:1)在父进程中,fork返回新创建子进程的进程ID;2)在子进程中,fork返回0;3)如果出现错误,fork返回一个负值;在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以...原创 2019-02-14 13:22:10 · 1560 阅读 · 0 评论 -
linux函数之------fread和read的区别
1,fread/fwrite是带缓冲的,read/write不带缓冲.2,fopen是标准c里定义的,open是POSIX中定义的.3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.4,fopen不能指定要创建文件的权限.open可以指定权限.5,fopen返回指针,open返回文件描述符(整数).6,linux/unix中任何设备都是文...转载 2019-02-13 21:51:57 · 257 阅读 · 0 评论 -
在Linux下基于TCP网络通信的多人在线聊天室
一、使用原理:TCP网络传输;多线程事件处理;二、功能简介:(服务端)1、打开服务端,服务端进行初始化,并等待客户端的连接;2、打开客户端,输入服务端的IP地址与端口号;服务端会产生一个线程与新增的客户端进行通信,并分配客户端的名称,每连接一个客户端,服务端会产生一个线程与客户端进行通信;3、每新建一个客户端服务端会为客户端分配一个名字,依次为: ‘a’,'b','c',...原创 2019-03-21 16:03:16 · 2952 阅读 · 0 评论