- 博客(6)
- 收藏
- 关注
原创 C语言---库函数的模拟实现
函数memcpy从source的位置开始向后复制num个字节的数据到的内存位置。这个函数在遇到'\0'的时候并不会停下来。如果source和有任何的重叠,复制的结果都是未定义的。
2025-05-18 22:12:44
254
原创 C语言---指针运用
数组指针是一种指向整个数组的指针,其定义语法为“类型(指针名)[数组元素个数];”,例如“int(p)[5];”表示p是一个指向包含5个int类型元素的数组的指针。数组指针的使用需要注意[]的优先级高于,因此需用括号确保p先与结合。数组指针可以作为函数参数传递,用于操作整个数组。此外,指针数组是存放指针的数组,如“int*arr1[10];”表示一个包含10个int类型指针的数组。函数指针则指向函数,其声明格式为“
2025-05-16 16:30:21
434
原创 Linux多线程概念
在一个程序里的一个执行路线就叫做线程(thread更准确的定义是:线程是一个进程内部的控制序 列”线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程 执行流一个进程的创建实际上伴随着其进程控制块(task_struct)、进程地址空间(mm_struct)以及页表的创建,虚拟地址和物理地址通过页表建立映射。
2024-10-23 19:36:42
757
原创 Linux进程信号-信号的产生
你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时, 你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取递。那么在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不 是一定要立即执行,可以理解成“在合适的时候去取”。在收到通知,再到你拿到快递期间,是有一个时间窗口的,在这段时间,你并没有拿到快递,但是你知 道有一个快递已经来了。
2024-10-14 21:05:36
863
原创 Linux--进程间通信
管道是一种进程间通信的方式,主要用于在具有父子进程或相关联的进程之间传递数据。例如,“ls | grep.txt” 这个命令将 “ls” 命令的输出(列出当前目录下的文件)作为 “grep.txt” 命令的输入,查找包含 “.txt” 的文件名。其中,ls命令和grep .txt命令是两个程序,当他们运行起来就变成了两个进程,ls进程通过标准输出将数据打印到“管道”中,grep .txt进程再读取过滤以.txt结尾的数据,至此便完成了数据的传输,进而完成数据的打印。
2024-10-03 22:16:48
1262
原创 Linux进程概念(PCB和fork)
程序的一个执行实例,正在执行的程序等担当分配系统资源(CPU时间,内存)的实体。写完代码,把代码进程编译链接形成的可执行程序,这个程序本质上是一个文件,放在磁盘上的。当我们双击这个可执行程序将它运行起来时,本质是将它加载到内存里,只有加载到内存里,CPU才能对它进行逐行语句执行。一个程序加载到内存里,我们不应该将这个程序叫做程序,严格意义上应该叫做进程。
2024-09-10 19:56:07
764
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅