UNIX/LINUX C
Unix/Linux API 源码实验
Johhny Rade
年青
展开
-
UNIX:用户信息
文章目录1. 系统中有哪些用户?2. 用户秘钥如何验证?2.1 验证原理2.2 验证举例3. 用户组关系是怎样的?3.1 初始组3.2 附加组(略)4. 谁登陆了我的系统?1. 系统中有哪些用户?系统用户信息保存在/etc/passwd文件中2. /etc/passwd 文件访问接口2.1)关键字检索 #include <sys/types.h> #...翻译 2020-01-13 18:34:32 · 988 阅读 · 0 评论 -
编程常识:shell类别
文章目录翻译 2020-01-13 17:25:21 · 100 阅读 · 0 评论 -
C语言历史:语言的标准
文章目录一、历史概要二、标准限制1、ISO 标准限制2、POSIX 限制3、获取运行时限制一、历史概要二、标准限制1、ISO 标准限制ISO C语言制定的所有限制 使用宏的形式完成,并集中在limits.h头文件当中2、POSIX 限制列举部分limits.h 文件中的限制,从标准中可见:每个进程最大打开文件个数20,现代操作系统看来,MAX值过小,实现中很可能远远不止20个...原创 2019-12-09 12:09:33 · 144 阅读 · 0 评论 -
UNIX系统调用:文件管理
文章目录1、stat1.1、文件类型1.2、文件权限2、acess3、umask4、chmod fchmod5、chown fchown lchown6、link ulink7、 remove(标准库函数)8、rename9、symlink10、readlink11、 mkdir rmdir12、 opendir readdir13 rewinddir seekdir telldir14、 cl...翻译 2020-01-04 17:34:22 · 624 阅读 · 0 评论 -
UNIX系统调用:文件操作
xx翻译 2020-01-04 16:33:10 · 464 阅读 · 0 评论 -
标准IO库:文件流
文章目录1. 标准IO库简介2. IO流操作索引3. 打开一个IO流4. 关闭一个IO流5. [按字符/行] 读取IO流6. [字符/行]写入IO流7. [按结构]读取/写入IO流8. 文件位置 offset9. 标准IO的缓冲配置8. 标准IO的缓冲配置1. 标准IO库简介标准IO库的设计是为了简化文件操作,(封装以及屏蔽了系统调用的细节)标准IO库由丹尼斯-里奇在1975年左右编写,至今...翻译 2020-01-04 22:23:56 · 221 阅读 · 0 评论 -
标准IO库:格式化IO
文章目录格式化输出格式化输入格式化输出PRINTF(3) Linux Programmer's Manual PRINTF(3)NAME printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprin...翻译 2020-01-04 22:33:15 · 770 阅读 · 0 评论 -
名词解释:进程概念
文章目录一、进程简介1、进程入口2、进程出口二、进程环境环境表环境变量三、共享库四、参考书籍一、进程简介进程诞生的背景 早期计算机硬件设计简单,功能单一 我们都知道现代的智能手机有很多功能,听音乐,看...原创 2019-12-02 22:55:45 · 2544 阅读 · 0 评论 -
进程关系:父子进程
文章目录fork函数示例代码关于内存关于文件fork函数函数原型:#include <unistd.h>pid_t fork(void);fork函数创建一个新的进程,即Child processfork调用一次,却返回两次,分别代表父进程和子进程(初学者往往会有诸多疑问与猜想:为什么会这样?)很多图书都在尝试解释“为什么fork返回两次的问题”,就笔者的经历来看:最有效...翻译 2019-12-03 20:10:34 · 9339 阅读 · 0 评论 -
进程关系:进程组
文章目录1、进程组概念2、加入/脱离/创建 进程组1、进程组概念每一个进程都有一个进程组ID,通过以下函数可以得到进程组IDpid_t getpgrp(void); /* POSIX.1 version /pid_t getpgrp(pid_t pid); / BSD version */进程组ID相同的进程构成一个进程组/*大多...原创 2019-12-04 20:24:20 · 284 阅读 · 0 评论 -
进程关系:进程会话
文章目录1、创建会话示例代码2、会话组成1、创建会话函数原型:#include <unistd.h>pid_t setsid(void);示例代码—fork| ----> session --exec-- shell {group1 , group2}2、会话组成...翻译 2019-12-06 18:38:42 · 470 阅读 · 0 评论 -
进程限制
文章目录一、进程资源列表1、资源列表2、代码示例二、更改进程资源1、 原则一、进程资源列表1、资源列表UNIX/Linux 操作系统族 对进程资源进行了抽象;下图为部分操作系统版本支持的资源类型2、代码示例#include <iostream>using namespace std;/*c接口,只好extern C*/extern "C"{ #include &...翻译 2019-12-03 16:47:22 · 425 阅读 · 0 评论 -
进程时间
文章目录1、时间分类2、函数原型3、示例代码1、时间分类某年某月某日墙上时间某一刻起,消逝的时钟/滴答数(机器上电从0开始的或者是实时时钟记录的从1900年起…)CPU时间分为用户时间和系统时间2、函数原型 #include <sys/times.h> clock_t times(struct tms *buf);3、示例代码#include &...翻译 2019-12-04 14:33:30 · 130 阅读 · 0 评论 -
名词解释:竞争概念
竞争发生于不同进程之间进程间的共享资源,由于进程执行顺序问题 结果未定义解决方案:软件设计保证进程执行顺序翻译 2019-12-04 19:37:39 · 2400 阅读 · 0 评论 -
操作系统:信号
文章目录一、信号概念1、个人理解2、信号/事件 产生方式3、信号处理方式二、、早期信号1、不可靠信号2、可靠信号定义3、被中断的系统调用一、信号概念1、个人理解 信号究竟是什么?追溯到计算机软件源头,“信号”这个词汇从何而来?尽管经验有限,但是笔者还是尝试表述下自己对信号的一些认识; ...原创 2019-12-12 13:50:38 · 2842 阅读 · 1 评论 -
exec 函数族
文章目录一、函数原型二、函数区别三、示例代码四、system一、函数原型二、函数区别三、示例代码四、system翻译 2019-12-04 14:07:12 · 353 阅读 · 0 评论 -
wait族函数
文章目录问题引入:僵死进程wait例1、父进程创建一个子进程,父进程wait子进程退出例2、父进程创建一个子进程,在信号处理函数回收子进程优点:waitpidwaitidwait3(小众,略)wait4(小众,略)问题引入:僵死进程一个进程可以有多个子进程,如果子进程结束而父进程出于Running 状态,子进程会占用内核一定的内存资源(任务控制表)无法得到释放(这种子进程称为Zombie)本...翻译 2019-12-03 22:30:14 · 151 阅读 · 0 评论 -
终端设备:名词解释
文章目录终端历史1、终端之初2、图形终端2.1 图形字符终端2.2 图形终端(伪终端)3、网络终端(伪终端)终端历史计算机设备总需要输入设备,输出设备:输入设备用于控制计算机;输出设备用于计算机输出结果1、终端之初早期计算机终端是一种独立的硬件设备,终端和计算机之间使用双工或者半双工方式通信笔者可以想象的一种场景是:在一个实验室中只有一台计算机,这台计算机背板上有好多好多的插口,每一个...原创 2019-12-04 19:33:23 · 5191 阅读 · 0 评论 -
终端设备:设备文件
文章目录1. 终端设备1.1 终端设备的设备号1.2 打开终端设备作为控制终端2. [伪]终端设备2.1 伪终端设备接口2.2 打开伪终端设备作为控制终端1. 终端设备1.1 终端设备的设备号终端设备的主设备号是4,譬如:$ ls -l /dev/tty1$ crw–w---- 1 root tty 4, 1 Jan 8 19:48 /dev/tty1 [主设备号4,次设备号1...原创 2020-01-09 18:51:21 · 232 阅读 · 0 评论 -
终端设备:终端属性
3、新会话 获取/释放控制终端3.1 系统中的终端设备串口终端 Linux世界中,串口设备一般用ttyS1,ttyS2表示,每一个设备名代表一个机器背板上的串口接口(设备号同硬件绑定)伪终端 是一种...翻译 2020-01-09 14:05:47 · 690 阅读 · 0 评论 -
终端设备:窗口配置
用户手动调整窗口大小,会触发信号!#include <iostream>using namespace std;extern "C"{ #include <sys/ioctl.h> #include <signal.h> #include <unistd.h> #include <termios.h>}void p...翻译 2020-01-09 19:34:42 · 189 阅读 · 0 评论 -
编程基础:过程调用
xx原创 2019-12-03 15:29:23 · 2768 阅读 · 0 评论 -
C/C++ 调试技巧
调试技巧简述调试过程中,通过无数的printf调试信息debug程序执行状态,deliver code的时候又常常需要把这些调试信息去掉,可能以后工作中可能需要重新增加这些调试信息,如此大大增加了时间成本。这一章提到了两种编码技巧避免重复工作(预处理器调试标记以及运行时调试标记)实现技巧方法预处理器调试标记这种方法通过预处理指令,在编译时决定调试信息是否参与编译//cat devi...原创 2019-07-12 14:01:17 · 1449 阅读 · 0 评论 -
C/C++ 逗号运算符
逗号运算符逗号分隔符用于编写优美的变量定义语句#include <iostream>int main(){ using namespace std; int a = 0, b = 1,c = 2, d = 3; a++, b++, c++; cout << "a="<< a << " b="<< b <<"...翻译 2019-07-12 13:38:40 · 204 阅读 · 0 评论 -
C/C++ 实时变量
c++允许如下风格变量定义,即:for循环和while循环的控制表达式内定义变量,if语句的条件表达式和switch的选择器语句内定义变量c语言要求在预先定义变量,而不是使用语句时定义变量(编译报错)#include <iostream>int main(){ using namespace std; if(int i =0) { } whil...翻译 2019-07-12 13:36:52 · 861 阅读 · 0 评论 -
C/C++变量作用域
函数作用域作用域标识变量在哪里创建,在哪里销毁。简单来讲作用域由变量所在的最近的一对花括号确定以下为示例代码,使用不在作用域的变量会引起编译错误#include <iostream>int main(){ using namespace std; int scp1 = 1; cout << "scp1 = " << scp1 << ...翻译 2019-07-12 13:35:16 · 156 阅读 · 0 评论 -
C/C++ 递归编程
注:以下代码仅用于学习交流,请勿用于商业用途Authors:yjljobrequest@163.com递归编程演示递归是一种编程技巧,某些时候用于求解具有随意性的问题。实现n的阶乘 n*(n-1)*(n-2)…*1#include <iostream>int reverse(int i){ if(i<0) { return 0; } ...原创 2019-07-12 13:33:13 · 196 阅读 · 0 评论 -
C/C++ goto 语句
注:以下代码仅用于学习交流,请勿用于商业用途Authors:yjljobrequest@163.com01 "声明狼藉"的goto 语句02 goto 语句 使用的集中场景01 "声明狼藉"的goto 语句goto语句的经常被贬斥为一种糟糕的编程方式,大学课程c语言课程中讲师这样称道,教科书很少见到goto语句的考题,甚至工程实践中也少见此类源码有限的使用goto语句,可以提高代...原创 2019-07-12 13:29:19 · 1154 阅读 · 0 评论 -
C/C++函数原型:(无参,可变长参数)
参考手册 http://www.cplusplus.com/reference/注:以下代码仅用于学习交流,请勿用于商业用途Authors:yjljobrequest@163.com01 无参函数02 不定参数 (C缺陷)03 可变长参数01 无参函数C 的实现//定义形式 与 调用形式#include <stdio.h>//定义void fool (v...原创 2019-07-12 13:23:22 · 628 阅读 · 0 评论