吴从周Linux/C++
文章平均质量分 57
这个系列是博主在学习吴从周老师的课程形成的笔记,主要记录对博主有用的部分,不从读者角度细讲,如果感兴趣可以自己搜它的课。
农民真快落
滚烫的理想主义将化作黑夜中的野火,灵魂的欲望便是命运的先知
展开
-
【Linux下C】Linux下多进程轮流写文件
由于时间紧张和学识有限,代码定有不足之处(后面会抽时间优化)大佬勿笑~????如果需要帮助或有任何建议,加我qq:2287015934文章目录需求实现思路演示动图源码联系方式需求程序中包括两个进程,P1和P2。它们分别向一个文件,轮流写入字符串。例如:P1写入字符串“XXXXXX”,P2写入字符串“YYYYYY”。关键词功能是轮流写入,P1写完后必须P2写,P2写完后必须P1写。实现思路我们利用fork函数可以创建一个子进程,假设我们先让子进程写文件,此时父进程不得写文件,怎么实现呢?l原创 2021-01-14 13:52:26 · 481 阅读 · 0 评论 -
【吴从周课程】多进程
进程:处于运行状态中的程序称之为进程,进程是并发程序设计中的重要概念。进程的三种基本状态:1)运行态进程占用CPU资源正在运行2)等待态此时不占用CPU资源,等待分配资源将其唤醒。3)就绪态具备执行条件,等待分配时间片fork()函数:fork的作用:我们知道,代码最终生成一个可执行文件,这个文件实际上就是一个机器可以识别的01序列,当文件被执行时便成为了一个进程。我们可...原创 2020-01-29 19:07:18 · 241 阅读 · 0 评论 -
【吴从周课程】类的详解(一)
本节课以封装文件操作类为例讲解类的基本内容,主要封装了打开、关闭、fprintf、fgets函数。三个访问权限控制符:private、public、protected成员变量命名一般以m_开头构造函数(constructor):构造函数在函数创建时自动执行,名称必须和类名相同,无返回值,一般用作变量初始化。在C语言中,主函数不得不初始化很多变量(如memset一个结构体数组),C++中用...原创 2020-01-14 20:43:31 · 273 阅读 · 0 评论 -
【吴从周课程】makefile文件
make与Makefile:make是一种工程管理技术,简言之就是增量编译——只编译刚改动过的文件。通过按照一定的规则编写好Makefile文件,在需要的时候我们只需要一个make命令就可以编译源程序,不需要写gcc -o test 等等后面一系列文件。vi makefile(先创建makefile文件)示例:all:book1 book2 book3 book4 ...原创 2020-01-11 23:04:33 · 227 阅读 · 0 评论 -
【吴从周课程】gdb调试
准备工作:想要用gdb调试程序,需要在编译加上-g。如:gcc -o helloworld helloworld -g常用命令:gdb helloworld 进入gdbstart 开始调试n 单行执行i locals 查看变量值(查看的是向前两个n的执行结果)...原创 2020-01-11 22:54:57 · 151 阅读 · 0 评论 -
【吴从周课程】时间操作
调整linux系统时区的步骤:1.首先,date -R查看当前centOS时区。2.如果不是上海时间,就先root,然后将上海时区拷贝到本地时间cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -R3.系统会提示cp:是否覆盖"/etc/localtime" 输入y4.此时再date -R查看当前centOS时区,时间已经调整到上...原创 2020-01-11 22:53:44 · 183 阅读 · 0 评论 -
【吴从周课程】目录操作
为什么需要目录操作:首先明白,这里的目录操作指的是在程序中对目录的操作,不是linux下的命令。试着考虑一下,我们现在要做气象的一个项目,每小时要生成一个目录来存储气象数据,如果由程序员手动建立得累死,因此我们需要在程序中随着需求动态地创建目录。与目录相关的函数:getcwd(buf,size); // 获得当前目录chdir(path); // ...原创 2020-01-11 22:53:04 · 169 阅读 · 0 评论 -
【吴从周课程】文件操作
注意:不用的时候用flose关掉关于文件I/O:实际开发中fprintf和fgets用的最频繁,要着重掌握。fgets函数:char *fgets(char *buf,int size,FILE *fp);buf保存从文件读取的数据size是打算读取内容的长度fp是文件指针如果读取这一行的内容的长度小于size,fgets就读取一行,否则读取size-1字节的内容。关于返回值:成...原创 2020-01-11 22:46:32 · 150 阅读 · 0 评论 -
【吴从周课程】动态内存管理
动态内存技术现状:以往定义数组时必须指明多大,现在可以用一个变量来定义了,动态内存管理应用的越来越少。写代码的思路:其实就是malloc(需要的字节数),然后赋值给一个指针变量,然后正常使用即可,这里malloc的返回值是void* ,因此适用于所有指针变量。int *pi=malloc(sizeof(int));分配出来的内存必须及时释放,否则会引起系统内存耗尽。野指针:1.指针变...原创 2020-01-11 22:45:11 · 174 阅读 · 0 评论 -
【吴从周课程】main函数的参数
main函数有三个参数:int argc,char *argv[],char *envp[]在linux下编译好一个程序后,执行时会写一些参数,其中argc是参数的个数,argv是参数字符串数组,envp是环境变量(了解即可)1)程序必有一个参数./book (即执行这个程序)2)程序要有对输入参数不对的处理(告诉这个程序需要哪些参数),防止程序员忘记或者使用者不会用。...原创 2020-01-11 22:41:00 · 113 阅读 · 0 评论 -
【吴从周课程】结构体
结构体变量名不能像数组直接当做地址使用,memset(&stgirl,0,sizeof(stgirl)); //给结构体变量加&获得地址这里的sizeof中可以是结构体类型stgirl 也可是struct st_girl ```结构体的内存不小于成员变量内存之和(各个变量在内存中的存储有空隙,使用内存对齐技术后可以等于)结构指针是指向结构体的指针,...原创 2020-01-09 22:11:13 · 211 阅读 · 0 评论 -
【吴从周课程】格式化输出函数
格式化输出函数格式化输出函数指的是以printf为基础拓展开的几个格式化输出函数,格式化输出函数:printf(格式化说明符,参量表)sprintf(str字符数组,格式化说明符,参量表)snprintf(str字符数组,N,格式化说明符,参量表) linux下输出的是N-1个fprintf(fp文件指针,格式化说明符,参量表)可以看到,printf函数是基础,格式化说明符这个参...原创 2020-01-07 20:04:34 · 529 阅读 · 1 评论 -
【吴从周课程】C语言字符串
size_t,是无符号的整数,即typedef unsigned int size_t。主要记录一些不熟悉的函数:strncpy、strncat、strncmp、strchr、strrchr、strstrchar *strncpy(char *dest,const char *src,const size_t n);功能把src的前n个字符赋值到dest中,如果src小于n就把整个字符串复...原创 2020-01-07 17:40:08 · 214 阅读 · 0 评论 -
【吴从周课程】坑爹的浮点数
坑爹的浮点数:Code:#include <stdio.h>#include "_public.h"int main(){float ff2=9.9;printf("ff2=%f\n",ff2);if(ff2==9.9)printf("ff2==9.9\n");float ff5=99.999;printf("ff5=%f\n",ff5);if(ff5==99....原创 2020-01-07 10:13:40 · 160 阅读 · 0 评论 -
【吴从周课程】C语言整数
C语言整数整数的修饰符:signed与unsigned 有符号与无符号short与long 短的与长的整数的范围常用的库函数int atoi(const char *nptr); // 把字符串nptr转换为int整数long atol(const char *nptr); // 把字符串nptr转换为long整数int abs(const int j); // ...原创 2020-01-06 20:56:30 · 176 阅读 · 0 评论 -
【吴从周课程】C语言指针
C语言指针:1.变量的地址定义一个变量并且输出它的地址,每次执行程序时系统给变量分配的内存位置不同,因此输出的地址也不同。2.指针的定义datatype varname;在这里代表定义指针变量其他的*则引用代表这个地址所指向的变量3.对指针赋值定义指针并初始化 int *pii=0; 这里输出指针地址,结果为nil4.通过指针改变变量的值int *pii=ⅈ*pii=20;...原创 2020-01-06 00:24:02 · 202 阅读 · 0 评论 -
【吴从周课程】函数
关于函数:函数调用:可以独占一行、可以当做常量赋值 、可以当成函数参数参数传递:就是把调用时传的参数复制一份给调用的函数的参数这一节其实我学到的主要是Linux下多文件编程,函数的基础知识我已经掌握。首先从库函数开始讲:系统库函数在目录:/usr/include cd进去再ls可以看里面有的头文件系统库函数的实现在文件/usr/lib/gcc/x86_64-redhat-linu...原创 2020-01-03 20:43:16 · 200 阅读 · 0 评论 -
【吴从周课程】循环、数组
循环:如果知道循环的次数,用for不知道循环的次数,以达到某种目标为目的,用while,如while(flag==1)如果出现死循环,可以用Ctrl+C终止数组:初始化:memset(no,0,sizeof(no));注意事项:1、定义数组的时候,数组的长度必须是整数,可以用常量和变量int size=100;int numbers[size];(占用400字节)在很久很久以前...原创 2020-01-02 12:03:52 · 126 阅读 · 0 评论 -
【吴从周课程】switch语句
switch语句应用于有多种情况需要分别判断处理的情形,switch(表达式){case 常量表达式1:语句系列1case 常量表达式2:语句系列2……case 常量表达式n:语句系列n[default:语句系列n+1]}关于switch语句的说明:表达式可以是常量,也可以是变量case后必须是常量执行过程:首先计算表达式 然后寻找与表达式的值相等的常量表达式,...原创 2019-12-24 12:14:12 · 269 阅读 · 0 评论 -
【吴从周课程】if分支结构
if分支结构首先要清晰关系运算符,注意两点:1.=是赋值,==是判断两个数是否相等2.C语言没有“之间”、“在某范围内”的运算符,只能写成年龄大于等于20并且小于等于30几种分支类型:1.只用if2.if elseif的多分支(可以用switch来替换)3.if语句的嵌套逻辑表达式注意编程风格逻辑非三目运算符...原创 2020-01-02 11:29:21 · 161 阅读 · 0 评论 -
【吴从周课程】运算符
C语言的运算符(位、条件、逗号运算符略去)1.算术运算符 + - * / % ++ –2.赋值运算符 = += -= *= /= %=3.关系运算符 > < >= <=4.逻辑运算符 || &&sizeof运算符:sizeof是C语言的关键字,发挥着运算符的作用。它主要用来计算某一个变量在当前系统的内存中所需占用的字节数。变量的类型包括...原创 2020-01-02 11:06:17 · 178 阅读 · 2 评论 -
【吴从周课程】简单的输入和输出
数据输入 编写程序的主要目的是为了处理数据,但是,数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据、从数据库中读取数据、从网页中抓取数据等,还有一种重要的方式就是从键盘输入数据。 在C语言中,有三个函数可以从键盘获得用户输入。 getchar() 用于输入单个字符。 gets() 获取一行数据,并作为字符串处理。 scanf() 最灵活、...原创 2020-01-02 10:29:25 · 241 阅读 · 0 评论 -
【吴从周课程】常量和变量
一切都是数据,编写程序的目的是告诉计算机如何输入、处理、传输、存储、展示数据。其中,输入和展示数据一般由java程序员来做,处理、传输、存储数据由C++程序员来做。关于数据静态数据存放在硬盘中的永久数据动态数据动态产生的临时数据,一般存储在内存中,由于内存I/O的速度比硬盘快,因此临时数据存放在硬盘数据单位PB-TB-GB-MB-KB-B-bit常量与变量常量指...原创 2020-01-02 09:59:53 · 214 阅读 · 0 评论 -
【吴从周课程】C程序的结构
0201 C程序的结构概述:一开始看到C程序的结构这节课我以为讲的是三种基本结构:顺序、选择、循环,看了以后发现其实讲的是一些基本常识:C语言{}、()、半角全角问题、代码规范不影响程序执行等基本常识,觉得还算眼前一亮,蛮好的。关于编译:gcc -o book book.c这里的o实际上是output 即生成的可执行文件放在book文件里./book执行gcc hello.c生成的...原创 2020-01-02 09:44:06 · 479 阅读 · 0 评论 -
【吴从周课程】C语言的数据类型
第二节—C语言的数据类型基本数据类型:整型、实型、字符型字符串类型:中文的字符型以"“包含起来‘好’ '。'是违法的,因为中文字符是两个字节只要被”“包含起来就是字符串 和里面的内容无关 如"1998” ""都是字符串构造类型:数组和结构体指针类型:主要用于函数的参数传递,非常重要其他的数据类型:复数类型、虚数类型、布尔类型、单精度类型 几乎没什么用...原创 2020-01-02 09:49:19 · 200 阅读 · 0 评论