LINUX
文章平均质量分 93
Apibro
记录一下学习,会发布自己做过的题
展开
-
【Linux|树莓派】分文件编程以及静态库动态库
简单来说树莓派的分文件编程就是将一个项目的代码放在不同的文件里面,然后在主函数添加一个头文件,这样会使#控制字体颜色主程序变得简单。在编译的时候要将主函数和功能函数一起编译:注意: 和 的区别: 前者表示引用标准库的头文件,编译时会从系统配置的库环境中去寻找,后者一般为用户自定义的头文件,比如分文件编程中自己定义的头文件,编译系统会从当前文件夹去寻找,如果找不到,则到系统的库文件中去寻找。Linux中C/C++默认库环境:,可使用 查看。使用GNU的工具我们如何在Linux下创建自己的程序原创 2022-12-06 16:34:43 · 417 阅读 · 0 评论 -
【Linux】简易ftp文件传输项目(云盘)
前言:这是对linux系统编程学习的总结,具体操作过程在代码里有注释。二、Server三、Client四、项目结果服务器运行,可以有多个客户端接入,如下:Server:Client:最后谢谢阅读,笔者乃小白,如有错误之处还请指正。原创 2022-11-30 19:04:50 · 412 阅读 · 0 评论 -
【Linux】系统编程之网络编程(socket)
设置能处理的最大连接数,listen并未开始接受连线,只是设置了socket的listen模式,listen函数只用于服务器端,服务器进程不知道要与谁进行连接,因此,它不会主动的要求与某个进程连接,只是一直监听是否有其他客户进程与之连接,然后响应该连接请求,并对它做出处理,一个服务进程可以同时处理多个客户进程的连接,主要就连个功能:将一个未连接的套接字转换为一个被动套接字(监听),规定内核为相应套接字排队的最大连接数。这些服务完全是可以由一个IP地址来实现的,那么,主机是怎么样区分不同的网络服务的呢?原创 2022-11-24 17:02:10 · 473 阅读 · 0 评论 -
【Linux】系统编程之线程(多线程初探)
典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。原创 2022-11-20 17:38:23 · 245 阅读 · 0 评论 -
【Linux】系统编程之进程间通信IPC(管道、FIFO、消息队列、共享存储、信号、信号量)
管道,通常指无名管道 ,是 UNIX 系统IPC最古老的形式。 1、它是(即数据只能在一个方向上流动),具有固定的读端和写端。 2、它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。 3、它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write 等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。函数原型:参数介绍:返回值:当一个管道被创建时,它会伴随着创建两个文件描述符,fd[0]为读而打开,fd[1]为写而打开;如图:想关闭管道只要原创 2022-11-14 23:07:18 · 1343 阅读 · 0 评论 -
【Linux】系统编程之进程
程序是静态的概念,;磁盘中生成pro文件,叫做程序。进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一个进程。每个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证pid=0:称为交换进程(swapper)作用—进程调度pid=1:init进程作用—系统初始化编程调用getpid();函数获取自身的进程标识符;getppid();获取父进程的进程标识符介绍两个字母符号:僵尸进程:Z+正常进程:即有父进程等待的进程,S+返回值:若成功,返回进程ID。原创 2022-11-08 23:05:28 · 1036 阅读 · 0 评论 -
【Linux】系统编程之文件(标准I/O库)
由此可以看出,内存“缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数据。非缓冲文件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不设文件结构体指针,只能读写二进制文件,但效率高、速度快,由于ANSI标准不再包括非缓冲文件系统,因此建议大家最好不要选择它。表现为,如果顺序访问文件,原创 2022-10-28 22:35:09 · 335 阅读 · 0 评论 -
【Linux】系统编程之文件(小应用--实现cp复制命令等)
. . }参数介绍:(1)argcargc为整型,用来统计程序运行时发送给main函数的命令行参数的个数,也是数组中字符串的数量。(2)argv1、char **argv 分析:首先argv是一个指针变量,argv的指向(*argv)是char *,也就是argv指向的也是一个指针;*argv的指向(**argv)是char[类比char *p,p的指向(*p)是char]。原创 2022-10-27 22:16:24 · 1925 阅读 · 2 评论 -
【Linux】系统编程之文件(常用API)
(3)O_APPEND:每次写入文件时都加到文件的尾端,即写入文件时,如果加上O_APPEND的话,write会根据文件里的原有内容将新内容接到旧内容尾巴去,如果没加O_APPEND,则会根据新内容的长度覆盖旧内容的对应的长度,覆盖不是删除,如果内容短,则会保留上一次的未被覆盖的内容。1、对于内核而言,所有打开文件都由文件描述符引用。(4)O_TRUNC:以这个属性去打开文件时,如果这个文件本来是有内容的,而且只为只读或只写成功打开后,则将其长度截断为0,也就是将原文件的旧内容全部删掉,写入新的内容。原创 2022-10-27 18:34:47 · 1842 阅读 · 0 评论 -
【Linux】基于Ncurse图形库的贪吃蛇(C语言)
ncurses(new curses)是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。在ubuntu低版本中运行不容易乱码,在高版本中gcc时,删去原先a.out多编译几次,并等待一段时间,也不会出现乱码。//判断地图上的点是否是蛇身节点。vi /usr/include/curses.h 可查看ncurse的宏定义。运行效果链接:https://v.douyin.com/6ooTQgt/如果传过来的i和j与行和列相等,则通过gamePic()打印输出。如何使用ncurse?原创 2022-10-05 19:53:17 · 3367 阅读 · 6 评论