
LINUX笔记
文章平均质量分 76
hardStudy_h
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C程序的存储空间分配
区域存储内容特点代码区程序的指令(如main函数中的代码)只读,防止代码修改数据区初始化的全局变量和静态变量程序启动时加载,存储已初始化的数据BSS 区域未初始化的全局变量和静态变量在程序启动时会自动初始化为 0堆区动态分配的内存(如通过malloc程序动态分配和管理,开发者需要负责释放内存栈区局部变量、函数的返回地址、参数等按照后进先出的顺序管理内存C 程序的内存分配是由操作系统根据不同的数据类型和作用域来决定的。代码区:存储程序的指令代码。数据区:存储已初始化的全局变量和静态变量。原创 2025-05-13 21:54:39 · 794 阅读 · 0 评论 -
Linux文件编程——标准库函数(fopen等)和系统调用函数(open等)的区别
标准库函数提供了高层次的接口,便于开发者进行日常文件操作,自动管理缓冲区,适合大多数场景。系统调用提供了底层的控制能力,适用于需要更高性能或更细粒度控制的应用。原创 2025-05-13 20:43:01 · 814 阅读 · 0 评论 -
Linux文件编程——标准库函数fopen、fread、fwrite等函数的使用方法及注意事项
fopen:用于打开文件,返回文件指针,可以设置文件的打开模式。fread:用于从文件中读取数据,适用于读取二进制数据。fwrite:用于将数据写入文件,适用于写入二进制数据。fseek:用于设置文件指针的位置,可以在文件内部进行定位。fclose:关闭文件,释放资源,确保数据写入完成。fputc:用于写入单个字符,适合逐个字符地写入文件。如果要写入多个字符,可以多次调用fputc,或者使用fwrite。fgetc:用于读取单个字符。返回值是一个int类型,用于区分普通字符与EOF(文件结束符)。feof。原创 2025-05-13 18:47:06 · 976 阅读 · 0 评论 -
Linux文件编程——读写结构体、链表等其他类型的数据
int id;} Student;int data;} Node;原创 2025-05-13 17:11:42 · 658 阅读 · 0 评论 -
Linux文件编程——实现cp命令
argc:参数数量(计数),始终 ≥1。argv:参数值的字符串数组,以NULL结尾。argc和argv是命令行工具的核心接口:它们让程序能够接收用户输入的文件路径和选项。没有这些参数,程序无法动态处理文件cp必须知道源文件和目标文件的位置,而这些信息只能通过命令行参数传递。后续的文件操作(如open()read()write())依赖这些参数:路径字符串直接来自argv,参数检查依赖argc。原创 2025-05-13 11:23:32 · 371 阅读 · 0 评论 -
Linux文件编程:操作流程与内核机制
Linux 文件编程不仅仅涉及如何使用高层的标准库函数,还需要深入理解文件系统的工作原理以及内核如何处理文件操作请求。从用户空间到内核空间的请求传递、VFS 的统一接口、实际文件系统的实现,到存储设备的底层交互,每一步都涉及到复杂的数据结构和机制。掌握 Linux 文件编程,特别是如何利用系统调用与文件系统进行交互,将帮助你深入理解操作系统的底层运作,提升你在系统级编程中的能力。通过本篇总结,希望你能对 Linux 文件系统的工作机制有更加清晰的认识,从而更好地进行文件操作和开发。原创 2025-05-12 15:53:06 · 747 阅读 · 0 评论 -
Linux文件编程——read函数与lseek函数
函数是一个系统调用,用于从文件描述符(File Descriptor)指向的文件或设备中读取数据到缓冲区。它是 Unix/Linux 系统编程中实现底层 I/O 操作的核心函数之一。:通过定位到文件的任意位置进行读写。可以避免不必要的顺序读取,提高效率。例如,在数据库文件中,通过。操作可能会读取到错误的数据或返回错误。,可以高效、可靠地完成文件 I/O 操作。直接定位到指定记录的起始位置进行读写操作。函数的详细使用方法和注意事项。函数会更新文件的当前偏移量,而。在 Linux 文件编程中,原创 2025-05-12 14:10:26 · 699 阅读 · 0 评论 -
Linux文件编程——write函数
函数是一个系统调用,用于将数据从缓冲区写入文件描述符(file descriptor)指向的文件或设备。它是 Unix/Linux 系统编程中非常重要的底层 I/O 操作之一。,可以高效、可靠地完成文件 I/O 操作。在 Linux 文件编程中,原创 2025-05-12 13:34:33 · 574 阅读 · 0 评论 -
Linux文件编程——open函数
系统调用(System Call)是应用程序与操作系统内核之间的交互方式。用户程序通过系统调用请求操作系统的服务,这些服务通常涉及硬件资源的访问,如文件读写、网络通信、进程控制等。操作系统会提供一个封装好的接口供程序员使用,从而使得程序能够在不直接操作硬件的情况下,依然能够进行诸如文件操作等任务。原创 2025-05-11 20:54:57 · 751 阅读 · 0 评论 -
Linux 文件编程入门
在 Linux 系统中,一切皆文件:普通文本、图片、设备、套接字、甚至键盘和鼠标等都被抽象为文件。文件编程就是通过程序对这些“文件”进行操作(如打开、读取、写入、关闭等),实现数据的存储与交互。│ 用户空间应用程序 ││ (如:使用 fopen、read 等) │▼。原创 2025-05-11 15:48:16 · 830 阅读 · 0 评论 -
Linux环境下基于Ncurses开发贪吃蛇小游戏
贪吃蛇的撞墙一般出现在移动后的情况下,那么我们需要在移动后加一个判定,判定移动后的贪吃蛇的尾巴节点的行和列是否等于地图边界的值,如果相等就判定撞墙,重新初始化地图界面,释放原链表的节点,避免内存浪费。我们在前边提到过,贪吃蛇的移动是根据更新其尾巴节点的方法来实现的,那么,要实现其上下左右移动我们就可以通过ncurses获取用户的上下左右按键的输入,根据输入来调整贪吃蛇链表的尾巴节点的行列值实现。我们使用了[ ]表示的贪吃蛇的身子,在这里我们考虑继续使用这个结构体,来表示贪吃蛇的食物,并且使用##表示食物。原创 2025-05-10 12:42:28 · 1220 阅读 · 0 评论 -
线程锁入门笔记(以贪吃蛇为例)
进程是操作系统分配资源的基本单位。每个进程都具有独立的内存空间、代码段、数据段等资源。进程之间不能直接访问对方的内存。进程与线程:进程是操作系统的资源分配单位,而线程是进程中的执行单元,多个线程可以共享同一进程的资源。为什么需要线程锁:当多个线程共享资源时,可能会发生竞态条件或资源冲突。线程锁能确保同一时刻只有一个线程访问共享资源,从而避免数据不一致。互斥锁的使用:通过,我们可以在多线程中保护共享资源,避免冲突。常用的操作包括初始化、加锁、解锁和销毁。在贪吃蛇项目中的应用:通过在多个线程访问ncurses。原创 2025-05-10 10:23:35 · 1208 阅读 · 0 评论 -
Linux C语言线程编程入门笔记
本文介绍了在Linux环境下使用C语言进行多线程编程的基础知识。首先,开发环境需要安装GNUC编译器和POSIX线程库,并通过gcc -pthread选项进行编译。线程是程序执行的最小单位,属于进程,多个线程共享进程的内存空间,但各自拥有独立的寄存器和栈空间。线程的生命周期包括新建、就绪、运行、阻塞/等待和终止等状态。创建线程使用pthread_create()函数,主线程可以通过pthread_join()等待子线程结束。线程函数必须符合void* func(void* arg)的形式,参数通过void*原创 2025-05-09 19:50:09 · 774 阅读 · 0 评论 -
C语言多线程编程深度解析
通过系统学习线程创建、同步机制、资源管理等核心概念,结合示例代码实践,可显著提升多线程程序的健壮性和性能。建议使用现代调试工具如GDB和Helgrind进行并发调试。线程是操作系统调度的最小单位,共享进程资源但拥有独立栈空间。多线程编程可有效提升CPU利用率,特别适合I/O密集型任务。原创 2025-05-09 12:27:18 · 246 阅读 · 0 评论 -
Linux系统下使用ncurses获取按键
通过上述步骤,你可以在Linux系统下使用ncurses库轻松捕获并处理上下左右方向键的输入。ncurses库提供了强大的功能,使得在终端中构建文本用户界面变得简单和直观。原创 2024-10-18 17:35:30 · 431 阅读 · 0 评论 -
Linux系统下Ncurses的安装与使用
Ncurses是一个用于构建文本用户界面(TUI)的库。它是Curses库的一个更现代、功能更丰富的实现,Curses库最初是为Unix系统设计的,用于在字符终端上提供基本的文本界面功能。使用Ncurses,我们可以创建多窗口的文本界面,控制文本的输出格式(如加粗、下划线、颜色等),。这使得Ncurses成为开发命令行界面应用程序的理想选择,尤其是在需要复杂交互或图形化元素的情况下。原创 2024-10-18 11:06:43 · 2188 阅读 · 0 评论 -
简述Linux和RTOS
在设计RTOS内核时,开发者需要仔细考虑系统的实时性要求,以及如何在资源受限的嵌入式设备上实现高效的任务调度和管理。实时操作系统(Real-Time Operating System,简称RTOS)内核是专为实时系统设计的操作系统核心,它能够确保在规定的时间内对事件做出响应。:Linux 是开源的,许多 RTOS 也是开源的,如 FreeRTOS,这使得开发者可以自由地查看、修改和分发源代码。:RTOS 内核必须能够在确定的时间内完成指定的任务,这意味着系统对任务的响应时间是可以预测的。原创 2024-10-17 19:54:44 · 2302 阅读 · 0 评论 -
linux——vim编辑器的常用操作指令以及快捷键
在Linux中,Vim是一款功能强大的文本编辑器,掌握其常用的操作指令和快捷键对于提高文本编辑效率至关重要。以下是对Vim编辑器常用的详细操作指令以及快捷键的归纳:Vim有多种模式,其中最常用的是正常模式(Normal Mode)、插入模式(Insert Mode)和可视模式(Visual Mode)。基本移动:h向左移动一个字符,j向下移动一行,k向上移动一行,l向右移动一个字符。快速移动:翻页:Ctrl+f向下翻页,Ctrl+b向上翻页,Ctrl+u向上滚动半页,Ctrl+d向下滚动半页。删除:复制:粘原创 2024-10-15 15:14:47 · 1306 阅读 · 0 评论 -
Linux——虚拟机网络配置
进行虚拟机网络配置是确保虚拟机能够正常访问网络、与宿主机及其他设备进行通信的关键步骤。虚拟机网络配置允许用户根据实际需求选择合适的网络模式,并调整网络参数以满足特定的网络环境要求。原创 2024-09-23 19:09:08 · 3053 阅读 · 1 评论 -
Linux——虚拟机和Windows间的文件传输方式
Linux虚拟机和Windows间的文件传输方式多种多样,每种方式都有其特定的适用场景和操作步骤。原创 2024-09-23 18:02:58 · 6088 阅读 · 0 评论 -
Linux——常用系统设置和快捷键操作指令
xandr命令会显示你所支持的所有分辨率。选择你要使用的分辨率,以1680x1050为例,使用命令。在Linux系统中,有许多快捷键和命令可以提高你的工作效率。2.终端打开快捷键:ctrl+alt+T。ctrl+alt++:字体变大。ctrl+ -:字体变小。命令框大小可直接拖拽。原创 2024-09-20 16:44:38 · 1057 阅读 · 1 评论 -
Linux——创建编写并编译一个C程序
这就是在Linux系统下,使用vim编辑器创建、编写并编译一个C程序的全过程。vim是一个功能强大的文本编辑器,通过掌握它的基本命令和快捷键,你可以更加高效地编写和编辑代码。此外,GCC是C语言编程中常用的编译器之一,它能够将C源代码编译成可执行文件。二、使用nano编辑器在Linux系统下创建、编写并编译一个C程序是一个相对直接的过程。我们将创建一个简单的C程序,该程序的功能是输出“Hello, World!”到终端。以上就是在Linux系统下创建、编写并编译一个C程序的基本步骤。原创 2024-09-20 15:09:58 · 3000 阅读 · 0 评论 -
Linux 网络适配,ping命令,更改自己的IP地址
Linux系统下不同于Windows系统。Windoes系统下ping命令默认只发送接受四次数据,而Linux默认不会终止,可以通过Ctrl+C进行强制终止。第一步:确认自己的IP地址,只能更改最后一位,如图可以更改为198.168.1.xx 且我的网卡名为:eth0CLC@Embed_Learn:~$ ping 192.168.1.88PING 192.168.1.88 (192.168.1.88) 56(84) bytes of data.From 19...原创 2021-07-12 11:57:44 · 1325 阅读 · 0 评论 -
Linux新手的常用基本的一些指令,使用虚拟机时的一些注意事项。以及如何在Linux环境下编写、编译、运行C程序,共享文件夹的创建使用等
注意事项: 在需要关机的时候,建议把虚拟机挂起,不要关机。关机的话下次重新启动比较慢,挂起的的时候下次重新启动可以继续上次的情况。常用的一些命令:Ctrl+Alt+T:调出命令窗口xrandr :调整窗口分辨率xrandr -s 分辨率 :应用你调整的分辨率Ctrl+L:清屏ls : 列出当前文件夹下有哪些文件所有文件VI工具:写C程序 命令行模式与输入模式 按i可以进入输入模式,出现insert 按esc退出输入模式,进入命令行...原创 2021-07-11 22:30:45 · 833 阅读 · 0 评论 -
利用头插法和尾插法创建动态链表
struct Test* insertFromHead(struct Test *head){ struct Test *new; while(1){ new = (struct Test *)malloc(sizeof(struct Test)); printf("input your data\n"); scanf("%d",&(new->data)); ...原创 2021-07-13 14:54:18 · 175 阅读 · 0 评论 -
链表简介,Linux环境下创建一个静态链表,计算链表的节点总数、查找对应节点、在节点后面和前面插入节点,删除节点
链表的每个节点应由数据和一个结构体指针组成。其中,前一个节点的结构体指针应该指向后一个节点。创建一个链表:首先定义一个结构体,其中需要包含一个指向自己的结构体指针;struct Test{ int num; struct Test *next;};定义节点,将节点联系起来; struct Test s1 = {1,NULL}; struct Test s2 = {2,NULL}; struct Test s3 = {3,NULL}; s1.next = &.原创 2021-07-12 18:55:42 · 153 阅读 · 0 评论 -
ncurse 获取按键
C语言中获取用户输入的函数有scanf、getchar、gets。这些函数有一个共同的特点,就是他们在获取到用户的输入之后还需要一个回车键才能结束。而我们在有些情况下需要得到用户的输入就及时做出反应,这个时候就用到了ncurse。#include <curses.h> //要记得包含这个头文件int main(){ initscr(); //ncurses界面的初始化函数 printw("this is test"); //在ncurse模式下的pri原创 2021-07-19 16:34:45 · 363 阅读 · 0 评论