Unix C(UC)
文章平均质量分 92
Andy001847
我步入丛林,是为了活得深刻。
展开
-
数据结构——栈的动态实现(brk/sbrk)(Unix C语言实现)
/************************************************************************* > File Name: stack_brk.c > Author: Andy001847 > Mail: yunzhonglai@hotmail.com > Created Time: 2014年10月22原创 2014-10-22 23:56:25 · 793 阅读 · 0 评论 -
Unix C (十一)
线程 1、理论和原理 1)主流的操作系统都是支持多进程的,每个进程的内部可以启动多线程完成代码的并行;每个线程的内部可以无限启动多线程。 2)线程是轻量级的,不拥有自己独立的内存空间,共享所在进程的相关资源(代码区/全局区/堆/文件状态/共享资源),线程拥有的只是一个独立的栈空间。 3)进程是重量级的,必须拥有自己独立的内存空间。 4)计算机执行代码必备CPU/内存,原创 2014-12-29 22:13:28 · 643 阅读 · 0 评论 -
Unix C (八)
信号(signal):1、信号是Unix/Linux系统中软件中断的最常用方式。2、中断就是中止当前正在执行的代码,转而执行其他代码。中断分为软件中断和硬件中断。常见信号中断:Ctrl+c段错误总线错误整数除0kill -9发送信号9子进程结束给父进程发信号信号的本质就是一个非负正数,Unix和Linux在信号上有区别。Unix是48个,Linux是64个,原创 2014-12-23 17:06:48 · 724 阅读 · 0 评论 -
Unix C (三)
存管理 程序是存在文件中的(硬盘),一个运行的程序是需要加载到内存中的,加载到内存中的程序叫进程。 STL --> 内存是自动分配和回收 | C++ --> new/delete,会调用malloc和free | C语言 --> malloc/free | Unix/Linux系统调用 -> brk/sbrk原创 2014-12-22 15:40:03 · 923 阅读 · 0 评论 -
Unix C (九)
进程间通信————IPC(Inter Process Communication)1、Unix/Linux系统基于多进程,进程和进程之间经常做数据的交互,这种技术称为进程间通信。2、进程间通信的方式:1)文件2)信号3)管道(最古老的IPC之一,目前较少使用)4)共享内存5)消息队列6)信号量集7)网络编程(socket)...其中共享内存、消息队列和信原创 2020-09-22 17:37:35 · 632 阅读 · 0 评论 -
Unix C (六)
文件锁: 1、当多个进程同时写一个文件时,有可能出现数据混乱,这个问题需要解决。解决方案:进程间的同步或文件锁。 2、文件锁就是当一个进程读写文件时,对其他进程进行读写的限制。 3、文件锁的结论:1)一个进程读,允许其他进程读,但不允许其他进程写。 2)一个进程写,其他进程既不能读也不能写。 4、文件锁是一个读写锁,包括读锁和写锁原创 2014-12-23 15:16:09 · 550 阅读 · 0 评论 -
Unix C (七)
进程: 1、程序和进程的区别。1)程序就是代码编译链接的成品(可执行程序)。程序是硬盘上的文件。2)进程就是运行在内存中的程序,一个程序可以启动多次,得到多个进程。3)CPU只能直接操作内存,不能直接操作硬盘,硬盘上的程序想要运行,程序必须先加载到内存中,变成进程。4)在日常生活中,为了跟客户交互,有时候也把进程成为程序。2、主流的操作系统都是多进程的,每个进程内部还可原创 2014-12-23 15:42:16 · 552 阅读 · 0 评论 -
Unix C (二)
库:便于团队开发程序,便于维护。 1、二进制形式目标模块的包。 a.o \ b.o -> abc.a---库 c.o / 2、库的分类:静态库和共享库(动态库)。 静态库:扩展名.a。库中所封装的二进制代码,在链接阶段被复制到调用模块中。 共原创 2014-12-22 01:10:50 · 882 阅读 · 0 评论 -
Unix C (五)
系统调用 系统调用可以操作内核,是外部程序和内核层交互的接口,但不能过于频繁的调用,否则效率极低。 time命令可以查看用户层及其内核层的执行时间。 文件和目录 在Linux/Unix中,几乎一切都可以被看成文件。 因此,系统调用函数open/close/read/write/ioctl几乎可以通用。 在Unix的系统调用中,打开/创建一个文件会产生一个文件表原创 2014-12-23 11:58:40 · 535 阅读 · 0 评论 -
Unix C (四)
文件: 1、在Linux系统中,几乎一切都是文件。目录(使用vi目录名验证),内存(查看/proc/进程号/maps文件验证),硬盘(查看/dev文件可验证)以及其他的各种硬件设备都可以看成文件。比如:文件/dev/tty可以看成键盘和显示器。 2、在标准C中的文件操作:用FILE*代表fopen打开的一个文件;而在UC中用文件描述符(一个非负整数)代表打开一个文件。原创 2014-12-22 16:32:51 · 681 阅读 · 0 评论 -
Unix C (一)
UNIX C编程: 一、课程内容:开发环境,内存管理,文件系统,进程管理,信号(进程间的语言)处理,网络通信,线程管理,线程同步。 二、Unix操作系统知识介绍。 1、美国AT&T公司(美国电报电话公司),贝尔实验室,1971年,肯.汤普逊、[丹尼斯.里奇],PDP-11,多任务,多用户,多处理器架构,高安全性,高可靠性,高稳定性,关键商务系统,商业应用,移动原创 2014-12-22 00:17:50 · 926 阅读 · 0 评论 -
Unix C (十)
网络编程: ip 地址 是网络中计算机的地址,和mac地址(网卡出厂地址/物理地址)联合 能够让网络找到计算机。用端口(port)定位一个进程。因此网络编程就是 ip+端口。 Unix系统中,几乎一切都可以看成文件。因此网络信息的交互就用文件的交互方式。 ip地址底层是整数,分为ipv4(4位ip)和ipv6(6位)。 对ip的描述方式一般使用点分十进制。4个或者6个 0-原创 2014-12-23 18:03:49 · 771 阅读 · 0 评论 -
数据结构——双向链表(C语言实现)
/*************************************************************************> File Name: link_list.c> Author: Andy001847> Mail: yunzhonglai@hotmail.com> Created Time: 2014年10月25日 星期六 11时51分34秒******原创 2016-04-26 19:00:39 · 923 阅读 · 0 评论