- 博客(18)
- 资源 (2)
- 收藏
- 关注
原创 在centos7安装theia
前段时间组装了一台主机,用来充当服务器主机。服务器主机选用centos7系统,我顺便在centos安装theia。theia是个操作Linux的工具,十分好用。在我写的文章里:在树莓派4b上配置Theia,搭建云端编程,已经介绍了ubuntu和raspbian系统安装theia的步骤。这次来记录centos系统安装Theia的过程。安装步骤分为三步1.安装node.js 和yarn2.安装配套软件3.获取theia,并用yarn进行安装安装node.js和yarncurl -sL http
2021-11-28 12:46:00
934
原创 C语言读写二进制文件
一 前言本篇主要讲解如何将结构变量存入文件中,并从文件中读取数据。二 读写文件初始步骤typedef struct { long n1; long n2; }Num;Num number1,number2 ;number1.n1 =10;number1.n2 =20;向文件里面写入数据FILE *file = fopen("number.txt","wb");//如果文件不存在,则创建文件if(file == NULL ) { printf("open error\n"
2021-05-30 08:34:07
6130
原创 Linux的TCP接口介绍
1. socket1.1原型#include <sys/socket.h>int socket (int family ,int type ,int protocol)family: AF_INET(ipv4) AF_INET(ipv6) AF_LOCAL (Unix域协议) AF_ROUTE(路由套接字) AF_KEY(秘钥套接字)type: SOCK_STREAM(字节流套接字) SOCK_DGRAM(数据包套接字) SOCK_SEQPACKET(有
2021-05-09 09:17:34
662
原创 如何判断stdin的数据类型
一 前言linux环境下,存在文件IO和缓存IO(标准IO)两种。这两种IO都提供stdin、stdout和strerr,即标准输入、标准输出和标准错误。那么问题来了,stdin是什么类型的数据呢?FILE *: int二 测试既然提出了问题,那么就来写代码验证。设计思路是利用C语言的编译规则。FILE *isFILE();int * isINT();FILE *isFILE() { return stdin;}int * isINT(){ return *stdin;}运行两个
2021-05-04 08:55:12
755
原创 C语言实现TCP服务端
一 前言上次实现了客户端的TCP通信代码,这次来实现TCP服务端.二 代码实现前期文章C语言TCP客户端获取时间Unix网络编程卷一第三章笔记2.代码#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include
2021-05-03 08:27:45
1602
原创 C语言TCP客户端获取时间
一 前言学习Unix网络编程快要20天,由于一直在忙各种事情,再加上网络理论比较多,一直缺乏对代码的实践。二 socket相关的头文件先整理一下代码需要用到的头文件#include <sys/socket.h>#include <netinet/in.h>#include <unistd.h>sys/socket.hnetinet/in.hstruct sockaddrstruct sockaddr_inint socket
2021-04-30 20:55:33
759
1
原创 ARP攻击的心得体会
一前言前段时间在做ARP的实验,结果把宿舍的网给断了~ 。后来我发现我的主机连接不上局域网的服务器了。一段探索的旅程就此展开了。二 ARP配置经过研究,我尝试在windows10和linux上配置ARPwindows10 配置ARP的指令netsh i i show in获取WLAN的IDx号netsh -c "i i" add neighbors IDx "Server_IP" "Server_MAC" 配置静态ARP这里需要注意的是,Server_MAC的写法为11-22-3
2021-04-30 17:52:11
1407
1
原创 标准IO库fgets和fputs对一个文本文件的读写操作
一 前言本篇主要讲解如何使用缓冲IO对文件进行读写操作,使用fgets函数和fputs函数。二 fgetsfgets的原型char *fgets (char *bufffer,int buffer_size,FILE *stream);返回值fgets返回它的第一个参数,这个返回值用来记录读取的内容。如果返回值是NULL,则表示当前已经到了文件尾读取规则直到读取一个换行符为止设定一行的最大长度MAX_LINE_LENGTH三 fputsfputs的原型int fputs
2021-04-23 16:26:29
565
原创 Unix网络编程卷一第三章笔记
前言这篇文章主要是Unix网络编程卷一第三章的个人笔记1.POSIX 规范的三个字段sin_familysin_addrsin_port五个套接字结构IPV4(sockaddr_in) IPV6(sockaddr_in6) Unix(sockaddr_un)数据链路(sockaddr_dl) 存储(sockaddr_storage)2.IPV4 套接字结构in_addrsockaddr_insockaddrinaddr _t s_ad
2021-04-22 17:29:49
161
原创 Python对象序列化-Pickle模块
一 前言一般情况下,如果要在不同的主机上传递数据,其传递的数据格式是二进制或字符串。字符串的传输是日常网络通信中的普遍情况,如socket、后端接口、下位机与上位机的通信等等,所以这篇主要来解决数据的序列化和反序列化。二 序列化与反序列化2.1 为什么需要序列化与反序列化?首先在解释之前,我们需要一些共识程序运行时,变量才存在,一旦程序停止运行,变量会被回收。变量存在于内存中,而不是以文件的形式存在硬盘上。内存不能永久保留变量。使用变量必须要访问内存中存放变量的区域。 在日常编写代
2021-03-30 23:01:12
248
2
原创 C语言的argv小案例
一 前言在以往的学习里,每当我创建一个新的文件用来测试功能时,总要按照一定的格式往Makefile文件添加内容,然后一行命令自动运行。久而久之,我就想要设计一段程序来帮我完成这个任务。这篇文章就来记录实现思路。二 设计思路三 代码/******************************************************* AddMakefile.c*******************************************************/#inc
2021-03-26 09:25:37
253
原创 用好pypi,提高开发速度
一 前言上篇文章讲解如何用package管理自己的python代码。除了要管理自己的python代码外,做为一名开发者来说,阅读网上相关教程,是必不可少的环节。python有许多免费使用的开源项目,通过pypi官网能去了解这些开源项目。二 PyPI官网1 介绍PyPIThe Python Package Index (PyPI) is a repository of software for the Python programming language.简单来说,PyPI官网是一个python
2021-03-18 21:29:02
150
原创 用包管理python代码,提高开发效率
有一个月没更新博客文章了,主要原因是我在摸索新知识,探索未知,以后有机会写写这段时间的成果,将会在linux编程专题继续更新。现在我打算写一个新的专题Python编程来总结过去点点滴滴的收获。这个专题面向有python基础的人,提高对于python的认识,使你更加熟练使用python语言。python编程专题默认环境是linux环境。这篇文章是这个专题的开篇之作,所以我先介绍如何用包来管理和维护自己的代码,这很重要。python语言有包(package)和模块(module)等概念,简单来说 包就是含有
2021-03-14 09:42:46
171
2
原创 用C语言实现回调函数
本文主要介绍如何使用回调函数,一步一步地教会你搭建自己的回调函数,并且在本篇文章会加入一些我对回调函数的一些思考。先来看看一个函数的声明、定义和调用//函数原型的声明void print(char *p);//函数定义void print (char *p) { printf("%s",p);}//函数调用print("this is pointer to function\n");看起来很容易理解,函数的使用已经成为日常,继续下一个话题,声明并定义函数指针//声明一个函
2021-02-24 14:07:55
740
原创 C模块化开发
本篇文章主要讨论如何实现C的模块化编程这里所指的模块化编程是利用头文件的形式,将一个项目代码划分到多个文件里面,并使用make进行编译处理。我们先来从主文件中分离函数,为此我们需要两个文件,Main.c和CMath.c/*------------------------------------------ Main.c------------------------------------------*/#include <stdio.h>double Abs(doubl
2021-02-20 11:17:22
338
原创 由char* 引发的Segmentation fault错误
在学习形参带const限定符时,意外遇到Segmentation fault的bug问题。C程序是在linux环境下运行。在维基百科上是这样解释Segmentation fault,存储器区段错误(Segmentation fault),又译为存储器段错误,也称访问权限冲是一种程序错误。它会出现在当程序企图访问CPU无法寻址的存储器区段时。当错误发生时,硬件会通知操作系统产生了存储器访问权限冲突的状况。操作系统通常会产生核心转储(core dump)以方便程序员进行调试。通常该错误是由于调用一个地址,而该
2021-02-16 14:50:42
1750
5
原创 在树莓派4b上配置Theia,搭建云端编程
这篇文章主要介绍如何在树莓派上安装Theia刚开始试着在树莓派安装Theia时,我选择通过docker去下载,下载了大概有8G左右的Theia镜像,下载完成后我发现这个镜像没办法成功运行。经过一段时间的摸索,我发现我下载的镜像是AMD64架构,不支持ARM架构,我只能试着手动安装Theia。这里先说说我手动安装过程的一些收获,其中最大的一点是在官方网站看文献可以快速而准确安装Theia及其所需的环境,Theia的官方文献写得挺详细。根据Theia的文献,我们需要先来配置一些环境。首先配置node.j
2021-02-12 08:16:55
1815
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人