- 博客(76)
- 收藏
- 关注
原创 Linux文件类型
块设备文件通常是对应于设备,如硬盘驱动器或其他块设备,使用块级别的 I/O 操作。:代表字符设备文件。字符设备文件通常是对应于设备,如串口、键盘等,使用字符级别的 I/O 操作。:代表命名管道文件。命名管道文件用于进程间通信,是特殊类型的文件。:代表符号链接文件。符号链接(软链接)文件指向另一个文件或目录。目录文件是用于存储其他文件或目录的文件。后面的一个字符表示文件类型,其含义如上所述。套接字文件用于进程间通信。命令查看目录内容时的文件类型标识。
2023-12-31 21:45:24
527
原创 五.共享内存
共享内存概述: 共享内存允许两个或者多个进程共享给定的存储区域。共享内存是一种用于实现进程间通信的机制,允许多个进程共享同一块物理内存区域。这种通信方式允许多个进程访问共享的数据,避免了数据复制和传输开销。
2023-12-31 20:59:08
1085
原创 三.Linux无名管道(PIPE)和有名管道(FIFO)的区别
命名管道适用于任意多个进程之间的通信,而无名管道适用于具有父子关系或兄弟关系的进程之间的通信。命名管道可以通过在文件系统上创建特定文件来实现,而无名管道是由操作系统内核自动创建的。命名管道提供了一个可供多个进程使用的路径,而无名管道仅适用于创建它的进程及其相关的进程。无名管道只能进行单向通信(一个进程用作写入端,另一个进程用作读取端),而命名管道可以支持双向通信。需要根据具体的通信需求选择适合的管道类型。
2023-12-29 21:19:30
572
1
原创 ncurses函数介绍和使用
在本篇博文中,我们将介绍`ncurses`库以及如何使用它的一些常见函数来创建简单的文本界面应用程序。这个示例演示了如何初始化`ncurses`,输出文本,刷新屏幕,等待用户按键,然后关闭`ncurses`。",并等待用户按下任意键后退出。在开始使用`ncurses`之前,你需要确保它已经安装在你的系统上。`initscr()`函数用于初始化`ncurses`,而 `endwin()`函数用于关闭`ncurses`。`ncurses`是一个强大的工具,用于创建文本界面应用程序,它提供了丰富的功能和灵活性。
2023-09-15 23:30:11
1037
原创 娱乐小玩意(切勿当真!!!)
printf("检测到你的身高有%dCM\n", shengao);printf("检测到你的颜值有%d分\n", yanzhi);printf("检测到你有%d万\n", qian);puts("做你女朋友");puts("请问你的颜值多少分?puts("请问你的身高是多少?puts("请问你有多少钱?puts("嫁给你");puts("想屁吃");
2023-08-31 22:15:49
86
原创 三个变量排序
printf("从小到大的顺序是:%d,%d,%d\n", data3, data2, data1);printf("请输入三个数\n");
2023-08-31 19:34:54
154
原创 gets与puts
/要一一对应每字符串里的每一个字符,如果对字符串直接操作(s1+4),是对指针进行++,出现乱码.#include //getchar是C语言的标准库函数。puts("请输入初始密码:");puts("加密后的密码为:");
2023-08-31 11:34:17
70
原创 【无标题】getchar和putchar一起用的细节
/getchar和outchar都是只能输出一个字符,因为getchar里面没有scanf里面那样&地址了,使用必须要s=getchar,指定这个外部键盘获取的字符是存储在char s里的.#include //getchar是C语言的标准库函数。
2023-08-30 21:27:19
142
原创 字符串查找(strchr,strstr)细节错误
/此处地址里存储的是字符,存在地址里的字符后面无结束符,不确定后面的元素,所以无法查找(结果错误,无法查找)//char* b = 'l';//此处为字符串,因为字符串后面有\0有结束符才能查找.(可以查找)strchr(str, *b);//此处为确切字符,后面无元素,可查找.puts(strupr(strings));puts("未找到该字符");puts("找到了该字符");puts("未找到该字符");puts("找到了该字符");
2023-08-29 16:53:45
161
原创 字符串易错点(字符串四种存储方式打印的区别)
/此处会出现乱码,字符串结尾会出现'\0',str[3]内的3会限制打印字符串时只打印前三个字符,所以还没出现乱码。//此处为第三种定义字符串的方式,元素个数不写,会根据真实大小默认分配.char str[3] = { 'a','b','c' };//此处为定义字符串的第一种方式,和数组类似。//此处为第四种方式定义字符串,采用指针的方式。//此处会出现乱码,字符串结尾会出现'\0'printf("%s\n", pstr);
2023-08-29 15:14:35
66
原创 字符串易错点(strcpy,strncpy)
/此处要对strDest进行重置,一申请了空间就必须重置,否则拷贝后乱码.// strncpy(strDest, "hello world", 7);
2023-08-29 14:51:01
70
原创 z字符串易错点(strcat,strcmp)
此处错误,会造成内存踩踏(test里只有4个字节,拼接过后内存超了)printf("复制字符串完毕%s\n", strDest);printf("两个字符串一样\n");puts("拼接字符串完毕%s",test);
2023-08-29 14:47:06
70
原创 斐波那契数列的多种表达方式
int main()int a[10];int b;int i;a[0] = 0;a[1] = 1;for (i = 2;i < 10;i++)for (i = 0;i < b;i++)return 0;
2023-06-19 20:54:54
92
原创 连续排序法的三种解法
printf("从小到大的顺序是:%d,%d,%d\n", data3, data2, data1);printf("请输入三个数\n");
2023-06-15 22:46:26
80
原创 创建链表之尾插法
int data;while (p!= NULL)return 1;return 0;return new;= NULL)= NULL)while (p!= NULL)cnt++;return cnt;free(p);= NULL)= NULL)
2023-06-10 17:05:28
56
原创 头插法优化
int data;while (p!= NULL)return 1;return 0;return new;= NULL)= NULL)while (p!= NULL)cnt++;return cnt;free(p);= NULL)= NULL)
2023-06-10 16:54:34
49
原创 创建链表之头插法
int data;while (p!= NULL)return 1;return 0;return new;= NULL)= NULL)while (p!= NULL)cnt++;return cnt;free(p);= NULL)= NULL)
2023-06-10 16:22:41
64
原创 链表(静态)删除指定节点
int data;while (p!= NULL)return 1;return 0;return new;= NULL)= NULL)while (p!= NULL)cnt++;return cnt;= NULL)return 1;}return 0;free(p);
2023-06-10 15:31:03
77
原创 链表:从指定节点前方插入新节点
int data;while (p!= NULL)return 1;return 0;return new;= NULL)= NULL)while (p!= NULL)cnt++;return cnt;= NULL)return 1;}return 0;int main()int i;
2023-06-08 20:11:49
166
原创 结构体指针综合处理(学生成绩管理)
printf("名字:%s 成绩:%d\n", p->name, p->chengji);//此处不能用*p,*表示运算符取地址的意思.指针循环之后往回走到指针头。//此处的*表示标识符申明变量*/printf("请输入名字:\n");printf("请输入分数:\n");//for循环里要指针++;//此处为指针头,要++遍历。
2023-04-04 23:42:24
72
原创 结构体指针表示学生成绩
printf("名字:%s 成绩:%d\n",p->name, p->chengji);p = p -len;//此处不能用*p,*表示运算符取地址的意思.指针循环之后往回走到指针头。//此处的*表示标识符申明变量*/printf("请输入名字:\n");printf("请输入分数:\n");//for循环里要指针++;printf("请输入总人数\n");
2023-03-05 22:37:59
140
原创 结构体指针
printf("学号:%d 姓名:%s\n", p->xuehao, p->name);printf("学号:%d 姓名:%s\n", p->xuehao, p->name);printf("学号:%d 姓名:%s\n",d1.xuehao,d1.name);printf("地址:%p\n", p++);printf("结构体增加之后的地址是:%p\n",p);strcpy(p->name,"李四");
2023-03-05 21:53:17
52
原创 结构体求最大最小值
printf("最低分为:%d:%s\n", min.fengshu, min.name);printf("最高分为:%d:%s\n", max.fengshu,max.name);printf("第%d个学生的名字和分数是:\n", i + 1);printf("请输入第%d个学生的分数\n", i + 1);printf("请输入第%d个学生的名字\n",i+1);
2023-03-04 17:49:59
313
原创 结构体里的指针细节错误
/ strcpy(d2.p, "中国共产党万岁");此处使用野指针会出现段错误。strcpy(d1.p, "中国共产党万岁");strcpy(d2.p, "中国共产党万岁");
2023-03-04 12:00:19
57
原创 if else语句的嵌套使用
printf("不嫁,没钱房子");printf("不嫁,没房子");printf("嫁");printf("请输入彩礼钱");
2023-03-02 22:32:07
111
原创 C结构体一
/行为:函数指针(自我介绍)printf("结构体: xuehao = %d\n", stu1.xuehao);printf("结构体: score = %d\n", stu1.fengshu);printf("结构体: xuehao = %d\n", test.xuehao);printf("结构体: name = %s\n", test.name);printf("结构体: name = %s\n",stu1.name);printf("结构体: = %d\n", test.fengshu);
2023-03-02 22:18:26
55
原创 自己封装实现字符串操作一
void myputs(char *p)//变量的声明形式参数char*p,字符串的特点结尾有'\0'.输出。void myMemset(char* p, char c, int size)//计数长度。printf("长度:%d\n", myStrlen(p));printf("你输入的字节数是:%d\n",n);int myStrlen(char* str)//初始化。myputs("请输入你的字符串:\n");int mygets(char *p)//输入。printf("内存非法");
2023-02-20 19:03:42
50
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人