
linux系统编程
文章平均质量分 55
主要是linux系统相关的编程
SSSS的博客
Python C/C++ C# Opencv Halcon STM32
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux系统编程-进程间通信-消息队列
最好用的队列是单向循环已知尾节点的队列,或者建立一个特殊的头节点,一个指向头节点,一个尾节点。可以通过消息类型进行收取或发送消息。类似于链式队列,满足先入先出,还满足通过类型来存取操作步骤:1.创建/打开消息队列相关函数:int msgget(key_t 键值,int 打开方式)参数:键值 – 通过ftok()获取打开方式:IPC_CREAT/0666成功是凡是msgid 失败是返回-12.收消息/发消息发送消息:int msg...原创 2021-03-07 14:19:42 · 331 阅读 · 0 评论 -
linux系统中vim配置
总结的一些常用的vim配置set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 set nu " 显示行号syntax on " 语法高亮set cursorline " 突出显示当前行"set cursorcolumn " 突出显示当前列"set tabstop=4 " tab键的空格数set autoindent " 自动缩进set softta原创 2020-08-21 00:15:32 · 241 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程-UDP编程实现文件下载
TCP编程实现文件下载基础模板可以参考:linux系统编程-SOCKET通信基础编程(0)-UDP编程linux系统编程-SOCKET通信基础编程(1)-UDP编程服务端程序linux系统编程-SOCKET通信基础编程(2)-UDP编程客户端程序程序原理:就是增加了文件的读写操作服务端程序#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sy.原创 2020-05-31 19:39:10 · 233 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(2)-UDP编程客户端程序
UDP编程客户端程序#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <string.h>#include <errno.h>#include <netinet/in.h>#include <unistd.h>#include <fcntl.h>#原创 2020-05-31 19:30:22 · 304 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(1)-UDP编程服务端程序
linux系统编程-SOCKET通信基础编程(0)-UDP编程UDP编程服务端程序#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <string.h>#include <errno.h>#include <netinet/in.h>#include <u...原创 2020-05-31 19:28:44 · 213 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(0)-UDP编程
1.UDP简介UDP是一种基于IP协议,(1)无连接的,(2)不保证可靠(3)数据报传输协议。无连接:通信双方在传输数据之前不需要建立连接。(也可以选择连接connect)不保证可靠:不保证接收的数据包顺序与发送的数据包顺序一致,也不能够发送的内容与接收到的内容一致。数据报:数据是分包的,有头有尾。发送一次接收方需要接收一次,这样UDP则就是有边界的数据包,而TCP数据则是连续的。发送一次,接收方需要接收一次。2.UDP基本程序介绍3.服务器端创建流程3.1创建socke原创 2020-05-31 19:25:55 · 437 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程-TCP编程实现文件下载
TCP编程实现文件下载基础模板可以参考:linux系统编程-SOCKET通信基础编程(0)-常用数据结构linux系统编程-SOCKET通信基础编程(1)-TCP客户端创建linux系统编程-SOCKET通信基础编程(2)-TCP服务端创建程序原理:就是增加了文件的读写操作TCP服务端代码#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/sock..原创 2020-05-31 19:10:02 · 408 阅读 · 0 评论 -
linux系统编程-tftp服务配置
1.查看是否安装tftp查看是否已经安装了tftp服务器:netstat -a | grep tftp表示已经安装:udp 0 0 *:tftp *:*1,安装tftp服务器及客户端$ sudo apt-get install tftpd-hpa tftp-hpa2.配置tftp服务2,在/home/[用户名]/路径下创建一个文件: tftpboot 修改tftp目录权限,运行命令: chmod 777 ./tftpboot 3,修改tftp的配置文件 $ sudo vi原创 2020-05-29 00:01:33 · 339 阅读 · 0 评论 -
linux系统编程-exec函数族介绍
1.exec函数族提供了一种在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段。这样exrc之后的代码段则不会再继续执行。在执行完之后,原调用进程的内容除了进程号外,其他全部都被替换了。2.如果还想继续执行exec之后的代码段功能,则我们就可以新建一个新的进程,让这个新的子进程,执行exec之后的代码段。1.这些函数都属于exec函数族,后缀不同则参数不同#include <unistd.h>int ex原创 2020-05-28 23:48:58 · 424 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(0)-常用数据结构
linux系统编程-SOCKET通信基础编程(0)-常用数据结构linux系统编程-SOCKET通信基础编程(1)-TCP客户端创建linux系统编程-SOCKET通信基础编程(2)-TCP服务端创建1.网络地址结构体struct sockaddr { unsigned short sa_family; /* address family, AF_xxx , 2 Byte*/ char sa_data[14]; /* 14 bytes of protoco...原创 2020-05-24 23:49:02 · 274 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(2)-TCP服务端创建
linux系统编程-SOCKET通信编程(1)-TCP客户端创建1.服务端创建流程1.1创建服务端scoket socket 本身就时一个整型值,相当于一个文件描述符int socket(int domain, int type, int protocol);int server_sock = socket(AF_INET, SOCK_STREAM, 0);//注意这里使用的是 SOCK_STREAM 流套接口1.2设置IP地址信息struct sockaddr_...原创 2020-05-24 23:35:51 · 349 阅读 · 0 评论 -
linux系统编程-SOCKET通信基础编程(1)-TCP客户端创建
1.客户端创建流程原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);两个重要的类型是 SOCK_STREAM 和 SOCK_DGRAM。 SOCK_STREAM表明数据象字符流 一样通过 socket 。而 SOCK_DGRAM 则表明数据将是数据报(datagrams)的形式。socket 本身就时一个整型值,相当于一个文件描述符1.1头文件#include <stdio.h>#include <st原创 2020-05-24 23:27:14 · 397 阅读 · 0 评论 -
linux系统编程-守护进程、后台进程、 精灵进程 、daemon
linux中守护进程又称:后台进程、 精灵进程 、daemon1.特点: 在后台运行的进程,生命周期长,一般情况下在系统开机的时候启动,在关机的时候结束2.作用: 周期性的处理某些事情,或者执行某些任务。3.名词: 进程:PID 父进程:创建子进程的进程PPID 进程组:同类型的进程组成的进程组。PGID 会话组:同类型的进程组成的,SID如何创建一个守护进程4.思路:确定它的人物 和终端脱离关系 确保当前守护进程的依赖目录不被卸载...原创 2020-05-22 21:35:09 · 343 阅读 · 0 评论 -
linux系统编程-进程间通信-有名管道(mkfifo)
有名管道: 可以实现两个无关系的进程间通信。可以用于统一PC的不同进程之间的通信。 因为在文件系统中是可见的,也就是说可以用路径来指出,因此就是有名管道,也是用的一段内存进行通信,在通信结束后,内容被清空,因此这个文件在文件系统中永远是0,不能使用 seek lseek 。也会支持读阻塞 写阻塞,没有空间写阻塞。遵循先入先出。有名管道使用步骤:创建有名管道。不能用open,因为open只能创建普通文件,不能创建管道文件,在这里使用的mkfifio来创建管道文件,这个文件是专门...原创 2020-05-22 21:10:46 · 821 阅读 · 0 评论 -
linux系统编程-进程间通信-无名管道(pipe)
无名管道实现通信:只能用于具有亲缘关系之间的通信,及就是父子进程间通信。管道通信来自于继承,通信基于文件描述符。管道有固定的读段和写段fd[0]和fd[1];只能单向通信,一边进一边出,可实现半双工通信。管道像文件,但是不是文件,它是一段特殊的内存,在kernelSpace中。当通信结束之后则就不可见。既然管道像文件,则它的操作可以使用文件的IO来操作,当管道为空时,则读会阻塞,则写也会阻塞。平时提到的,代码段数据。。。。这是UserSpace 占据了3-4G.另外的是kernelSpa原创 2020-05-22 20:41:42 · 616 阅读 · 0 评论 -
Ubuntu apt-get updata fail(Resource temporarily unavailabe)
/* sudo apt-get updata fail */sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/locksudo rm /var/lib/apt/lists/lock/* 或者 */sudo apt-get cleansudo apt-get update原创 2020-03-15 18:41:44 · 200 阅读 · 0 评论 -
Windows与Ubuntu的断行字符ubuntu和dos换行符转换
测试文件:在widdows新建文本文件,内容如下:在dos中文与linux断行字符不同,可以利用cat -A 查看DOS系统的文件格式,就会发现在dos系统中断行字符为“^M$”,也就是我们说的CR与LF两个符号。而在linux系统中文件格式仅有LF($)这个断行符号。测试如下:测试步骤linux@linux:/mnt/hgfs/000myShare/LearComm$ fr...原创 2020-02-25 12:09:56 · 635 阅读 · 0 评论 -
linux:binutils工具集---as命令
binutils工具集---as命令:简介:一个汇编器,将gcc的输出汇编为对象文件 into object files,它支持多种不同类型的处理器。语法与参数:语法格式:as (选项) (参数)-ac:忽略失败条件;-ad:忽略调试指令;-ah:包括高级源;-al:包括装配;-am:包括宏扩展;-an:忽略形式处理;-as:包括符号;=file:设置列出文...原创 2020-02-17 14:49:00 · 686 阅读 · 0 评论 -
linux:gcc编译器的四个阶段
第一阶段:预处理这个阶段输入*.c源文件,这个阶段主要处理的是文件中的带“#”的语句,输出一个 .i 文件gcc –E file.c –o file.i第二阶段:编译阶段这个阶段输入第一阶段生成的 .i 文件,输出成汇编语言的 .s 文件gcc –S file.i –o file.s第三阶段:汇编阶段这个阶段将第二阶段的汇编文件 .s 文件输入,然后编译成机器语言 .o...原创 2020-02-17 14:38:01 · 1161 阅读 · 0 评论 -
linux:Ubuntu14.04安装MySql和本地Windows Navicat for MySql远程连接MySql
一、Ubuntu14.04安装MySql数据库1.打开终端,输入:sudo apt-get updata输入root用户密码2.更新完毕后,输入:sudo apt-get install mysql-server安装期间会要求输入两次密码,每次输入完成后按Enter回车确认,如下图:安装完成后,自动启动MySql,终端会显示,如果没有自动启动,则手动启动My...原创 2020-02-16 15:34:56 · 971 阅读 · 0 评论 -
putty工具远程链接linux:Ubuntu和openssh-server安装
远程登陆工具:服务器端: 1.需要下载openssh-server sudo apt-get install openssh-server检查安装成功否:sudo dpkg –i 安装包名.deb 2.重启ssh :sudo service ssh restart客户端(windows中下载putty软件)打开putty 输入I...原创 2020-02-16 15:07:32 · 387 阅读 · 0 评论 -
linux解压打包压缩:gzip、bzip2、tar
gzip工具gzip 用于后缀名为“.gz“gzip union.c 执行后生成一个union.c.gz压缩文件gzip –d union.c.gz 将union.c.gz解压gzip union.c.gz 将union.c.gz解压bzip2工具这个工具不能压缩文件夹,只能压缩文件bzip2 用于后缀名为“.bz2“bzip2 union.c 执行后...原创 2020-02-09 20:11:03 · 311 阅读 · 0 评论 -
Linux环境变量设置
env 查看环境变量,查看所有的环境变量echo $PATH 之查看PATH的环境变量当控制台输入命令的时候,则先会取PATH下查找命令bin文件,如果有则执行,如果没有则会报错更改环境变量值:方法1:一次性更改关闭终端则会失去作用,当重新开启终端后会失去作用export PATH = $PATH:/home/linux/文件夹1PATH=$PATH 表示给新的P...原创 2020-02-09 20:05:38 · 259 阅读 · 0 评论 -
linux:NFS网络文件系统
它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。功能:服务器端将文件共享,则客户端就可以挂载该文件服务端:安装步骤:安装nfs-kernel-server 设置配置文件, /etc/exports sudo vim /etc/exports 在文章末尾添加 2.2 /home/...原创 2020-02-09 20:00:54 · 142 阅读 · 0 评论 -
linux:binutils工具集---addr2line(段错误Segmentation fault 基本检查和tombstone分析)
1. 测试代码#include<stdio.h>void Segmentation_fault(){ int *p = NULL; /* 这里会报 Segmentation fault */ *p = 1;}int main(){ /* 调用 */ Segmentation_fault(); return 0;}2.编译:添加 -g -o 选项 ...原创 2020-01-05 19:09:38 · 1178 阅读 · 0 评论