Linux
文章平均质量分 77
从入门到捕蛇者说
这个作者很懒,什么都没留下…
展开
-
Linux常用快捷键与常用命令
快捷键Ctrl+Alt+T 调出命令口终端Ctrl+L 清屏Ctrl+Alt+C 复制Ctrl+Alt+V 粘贴Tab 文件名太长,一般敲前几个字符,再按tab就会补全常用命令xrandr 列出电脑上的分辨率xrandr -s 1368×768ls 列出当前文件夹下有哪些文件ls -a 显示所有文件,包含隐藏的文件和文件夹pwd .........原创 2021-07-05 15:59:13 · 953 阅读 · 0 评论 -
Http协议之Https
一、简介与原理http协议是明文传输的,因此很容易被截取和解析,泄漏个人数据。https协议是在http和tcp之间多添加了一层,进行身份验证和数据加密。HTTPS 原理① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数 [2] ;③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务原创 2022-04-23 16:00:34 · 201 阅读 · 0 评论 -
http协议之libcurl
一、libcurl简介libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。libcurl的官网 http://curl.haxx.se/库下载https://github.com/curl/curl/releases/tag/curl-7_71_1原创 2022-04-23 09:05:13 · 484 阅读 · 0 评论 -
段错误产生原因及简单的调试方法(解决树莓派编译没问题,运行时出现Segmentation fault)
段错误产生原因1.访问不存在的内存地址如下面代码,ptr没有申请空间就直接拷贝数据:#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, char *argv[]){ char *ptr = NULL; //This is the wrong implementation: strncpy(ptr, "abc", 3);//ptr没有申请空间就原创 2022-04-21 08:41:11 · 1667 阅读 · 0 评论 -
Linux编程 --- 贪吃蛇小游戏
如何使用ncurse#include <curses.h>int main(){ initscr();//ncurse 界面的初始化函数 printw("This is curses window\n");//在ncurse模式下的printf getch();//等待用户输入,如果没有这句话,程序就退出了,看不到运行的结果,也就是看不到上面那句话 endwin();//程序退出,调用改函数来恢复shell终端的显示,如果没原创 2022-03-09 20:53:11 · 5818 阅读 · 0 评论 -
Linux编程 ------ ftp 服务器
服务段#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdlib.h>#include <string.h>//#include <config.h>#include <sys/stat.h>#原创 2022-03-06 17:19:01 · 473 阅读 · 0 评论 -
设计模式——工厂模式
为啥学设计模式设计模式有23种,我所会使用的模式为工厂模式,学习设计模式的主要原因是,以前写代码写的很乱,添加工程的时候容易导致程序其它部分的代码被破坏,所以要学习设计模式。面试回答:能让代码更加稳定,拓展性更强的一系列软件组织的方法有23种,我使用过工厂模式。什么是设计模式https://www.runoob.com/design-pattern/factory-pattern.html设计模式通常描述了一组相互紧密作用的类与对象。建筑设计领域设计引入到计算机科学中来的。什原创 2021-08-20 11:43:31 · 141 阅读 · 0 评论 -
Linux库概念及分文件编程(面试重点)
1.分文件编程案例分文件前的源代码:#include <stdio.h>/* * 功能性的函数 * 1.串口 * 2.网络 * 3.线程 * 4.语音 * 5.加法、乘法、减法、除法 * */int add(int a,int b){ return a + b;}int min(int a,int b){ return a - b;}int mul(int a,int b原创 2021-08-02 11:54:15 · 119 阅读 · 0 评论 -
Linux网络编程基础
一、TCP/UDP对比TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前,不需要建立连接。 TCP提供可靠的服务。也就是说,通过TPC连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。 TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率减低(对实时应用很有用,如IP电话,实时视频会议等) 每一条TPC连接只能是点到点的;UDP支持一对一,一原创 2021-07-19 15:31:52 · 381 阅读 · 0 评论 -
Linux线程
一、进程与线程典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。 进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。 线程是操作系统能够进行运算调度的最小...原创 2021-07-17 10:18:09 · 109 阅读 · 0 评论 -
进程间通信
进程间通信是指在不同进程之间传播或交换信息。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享内存、Socket、Streams等。其中Socket和Streams支持不同主机上的两个进程IPC。一、管道 管道,通常指无名管道,是UNIX系统IPC最古老的形式。1.特点:它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。 它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。 它可以...原创 2021-07-16 10:39:40 · 174 阅读 · 0 评论 -
Linux进程的基础(下)
exec族函数我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。函数原型:(execle和execvpe比较难)#include <unistd.h>extern char **environ;int execl(const char *path, const char *arg, ...);int exe...原创 2021-07-11 22:18:12 · 249 阅读 · 0 评论 -
Linux进程的基础(上)
问1.什么是程序,什么是进程,有什么区别? 程序是静态的概念,gcc xxx.c -o pro ,磁盘中生成pro文件,叫做程序。进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一个进程。问2.如何查看系统中有哪些进程?使用ps指令查看,实际工作中,配合grep来查找程序中是否存在某一个进程。(例:ps -aux|grep init) 使用top指令查看,类似windows任务管理器。问3.什么是进程标识符? 每个进程都有一个非负整数表示...原创 2021-07-11 17:35:34 · 116 阅读 · 0 评论 -
文件的自动化操作(下)
Linux系统默认的文件描述符:0 1 2 标准(键盘)输入 标准输出 标准错误 #include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <stdlib.h>int main(){原创 2021-07-09 11:59:55 · 91 阅读 · 0 评论 -
Linux文件操作编程小练手
命令调用原型:cp scr.c des.cC语言参数 ./a.out ··· ···编程思路:打开src.c 读src到buf 打开/创建des.c 将buf写入到des.c close两个文件argc(3个参数) 0 1 2 参数 cp src.c des.c argv argv[0] argv[1] argv[2] #include <stdio.h>#include <sys/t...原创 2021-07-08 11:23:03 · 134 阅读 · 0 评论 -
文件的自动化操作(上)
文件的打开及创建SYNOPSIS #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);pathname:要打开的原创 2021-07-07 17:21:27 · 217 阅读 · 0 评论