E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【系统编程】Linux编程
Linux学习日记15——exec函数族、回收子进程
学习视频链接黑马程序员-Linux
系统编程
_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?
herb.dr
·
2023-09-21 02:54
linux
linux
【Linux
系统编程
】操作系统的概念、定位 及系统调用
文章目录前言1.操作系统的概念和定位2.如何理解“管理”3.操作系统为什么要做管理4.系统调用和库函数概念5.局部性原理6.计算机体系结构前言上一篇文章我们学习了冯诺依曼体系结构(属于计算机硬件的范畴),其中我们提到,因为有了内存的存在,我们可以把数据预加载到内存中,然后供CPU进行获取处理。那我问大家一个问题,就是我们的数据可能非常多,那预加载的时候要先预加载那一部分数据呢?如果内存不够了怎么办
YIN_尹
·
2023-09-20 13:10
Linux
系统编程
linux
服务器
运维
【Linux
系统编程
】进程概念与基本创建
文章目录1.进程的概念2.进程描述—PCB3.task_struct—PCB的一种4.task_struct内容分类5.查看进程这篇文章我们来学习下一个概念——进程1.进程的概念那什么是进程呢,我们该如何理解它呢?如果我们打开电脑的任务管理:我们看到这里面就展示了当前正在运行的进程,那大家看这其实就是我们当前打开的程序嘛所以,我们给出一个结论:我们以前任何启动并运行程序的行为,都是由操作系统帮助我
YIN_尹
·
2023-09-20 13:07
Linux
系统编程
linux
运维
服务器
Linux
系统编程
(三):进程
参考引用UNIX环境高级编程(第3版)黑马程序员-Linux
系统编程
1.进程相关概念1.1程序和进程程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(CPU、内存、打开的文件、设备、锁…)程序→剧本
Robot_Yue
·
2023-09-20 10:46
Linux系统编程
linux
服务器
学习
笔记
c++
stm32
单片机
Linux
系统编程
:详解进程地址空间
目录一.进程空间的布局二.进程地址空间2.1早期CPU访问物理内存的方式2.2什么是虚拟地址(进程地址空间)2.3操作系统对地址空间的管理方法三.地址空间存在的意义四.总结一.进程空间的布局在语言层面学习C/C++时,根据变量/对象类型的不同,我们画出了如图1.1的空间布局图,从高地址到低地址,每个区域所代表的意义为:内核空间(用户无法使用)、命令行参数和环境变量区、栈区、堆区、静态区(包括未初始
【Shine】光芒
·
2023-09-20 10:38
Linux系统和网络
linux
运维
服务器
Linux
系统编程
之条件变量
Linux条件变量1.头文件2.类型2.1.类型值2.2.条件变量和属性类型3.接口3.1.条件变量接口3.1.1动态初始化资源3.1.2.动态释放资源3.1.3.条件变量阻塞3.1.4.带超时时间的条件变量阻塞3.1.5.唤醒单个阻塞线程3.1.6.唤醒所有被阻塞的线程3.2.条件变量属性接口3.2.1.属性初始化3.2.2.属性释放3.2.3.修改属性3.2.4.查询属性3.2.5.获取设置超
Siveens
·
2023-09-20 09:50
Linux系统编程
linux
Linux下的
系统编程
——守护进程、线程(十二)
前言:我们知道进程拥有一个PCB,在Linux中被称为task_struct,并且有一个进程地址空间,也有一个页表,通过页表指向物理内存,但是从今天开始,对进程的概念可能发生变化,这个我们后边来说,在Linux中,并没有真正的线程,而是使用进程的PCB来模拟线程,也就是说一个线程在创建时,只会去创建一个PCB,而这个PCB也指向主线程的虚拟地址空间,和其他线程一起共享内存的代码和数据。一个线程也被
我想学LINUX
·
2023-09-19 08:04
linux
进程概念
进程控制
进程共享
Linux下的
系统编程
——线程同步(十三)
前言:在多线程编程中,如果多个线程同时访问和修改共享资源,可能会产生竞争条件和数据不一致的问题。同步机制用于协调线程之间的访问和操作,确保数据的正确性和一致性。为了避免多个线程同时访问和操作共享资源导致的问题,可以使用互斥锁(mutex)来实现线程的互斥访问。互斥锁可以保证同一时间只有一个线程访问共享资源、条件变量用于线程之间的通信和同步。一个线程可以等待某个条件成立,而其他线程可以通过发送信号来
我想学LINUX
·
2023-09-19 08:31
linux
wait
死锁
mutex
读写锁
条件变量
线程同步
【Linux
系统编程
】线程同步
------------->【Linux
系统编程
/网络编程】(学习目录汇总)#include#include#include#include#include#include#defineMAX100//
BillySturate
·
2023-09-19 03:25
Linux系统编程
c语言
linux
服务器
运维
Linux
系统编程
6(线程互斥,锁,同步,生产消费模型)
上篇文章介绍完线程的概念后,我们将在这篇文章中初步探讨线程编程以及线程应用中的问题,这篇文章将以抢票系统为例,贯穿整篇文章。笔者将介绍在多线程编程中会出现的问题,什么是同步?什么是互斥?为什么多线程编程常有加锁的概念,什么又是生产者和消费者模型,读完这篇文章,你会得到相应的答案,笔者这里强烈建议各位把文中给出的demo示例自己实现一遍多线程这部分必须要理论和实操相结合,并不像前面虚拟地址空间,页表
浪雨123
·
2023-09-19 03:22
Linux(基础使用
系统编程
网络编程)
linux
服务器
《Linux
系统编程
训练营》8_Linux 终端与进程
详解控制台与终端有趣的问题:Linux的终端,控制台,TTY,PTY究竟是什么?它们与进程有什么关系?历史回顾:控制台控制台是一个直接控制设备的面板(属于设备的一部分)计算机设备的控制台:按键&指示灯(键盘&显示器)早期的电子计算机必然有一个控制台历史回顾:终端(Terminal)终端是一台独立于计算机的机器,是能够用来和计算机进行交互的设备TTY--即:TeleTypeWriter电传打字机,一
·
2023-09-18 21:57
linux
【Linux操作系统】基于消息队列的银行管理系统<客户端>代码详细分析
这是一个基于信息队列的银行管理系统客户端的项目代码详细讲解,主要介绍了开户、存款、取款等等任务在客户端的运行,代码比较简单,但是每一段代码都进行了详细的讲解,源代码主要来源于:Linux
系统编程
阶段项目
嵌入式小白—小黑
·
2023-09-18 20:06
从FreeRTOS到Linux
linux
运维
服务器
《Linux
系统编程
训练营》7_进程创建大盘点
vfork与进程创建进程创建回顾intcreate_process(char*path,char*args[],char*env[]){intret=fork();if(ret==0){execve(path,args,env);}returnret;}问题:进程创建是否只能依赖于fork()和execve()函数?再论进程创建fork()通过完整复制当前进程的方式创建新进程execve()根据参
·
2023-09-18 16:10
linux
《Linux
系统编程
训练营》6_深入 Linux 系统
进程的数据输入输出问题:进程参数和环境变量对于进程意味着什么?进程参数和环境变量的意义一般情况下,子进程的创建是为了解决某个子问题子进程解决问题需要父进程"数据输入"(进程参数&环境变量)设计原则:子进程启动时必然用到的参数使用进程参数传递子进程解决问题可能用到的参数使用环境变量传递思考:子进程如何将结果返回父进程?#includeintmain(){printf("Test:HelloWorld
·
2023-09-18 16:01
linux
《Linux
系统编程
训练营》5_环境变量编程
初识环境变量问题:环境变量是什么?有什么意义?intcreate_process(char*path,char*args[]){intret=fork();if(ret==0){execve(path,args,NULL);}returnret;}main函数(默认进程入口)intmain(intargc,char*argv[],char*env[])argc命令行参数个数(启动参数)argv[]
·
2023-09-18 16:55
linux
汇编指令概述 AT&T汇编基本语法
CMU15213_课件深入理解计算机系统-笔记-第一章-计算机系统漫游uCoreOS实验指导书和源码网址(2017)How-to-Make-a-Computer-Operating-System各章节代码linux
系统编程
双系统安装
Z初的梦想
·
2023-09-17 12:24
汇编
文章汇总 | 老板们,周末愉快
Linux
系统编程
篇Linux-C编程|3分钟快速了解信号驱动式IOLinux-C编程/进程通信/实现基于SysV消息队列的文件服务器Linux-C编程/多线程/一个简洁可靠的线程池实现Linux-C编程
老吴的嵌入式之旅
·
2023-09-17 10:15
Mojo编程语言是AI人工智能的新的编程语言
Mojo被认为是Python的超集,兼容Python生态,但添加了
系统编程
和编译期优化的特性,以提高性能和部署效率。Mojo基于MLIR,可以支持多种硬件加速器,包括CPU、GPU和其他xPU。
软件架构师-叶秋
·
2023-09-16 17:55
常用软件开发工具推荐
人工智能
mojo
【Linux】线程的概念
:2.查看线程2.1链接线程库:2.2ps-aL:3.页表的认识3.1二级页表:3.2页表的实际大小:4.再看线程4.1线程总结:4.2线程的优点:4.3线程的缺点:前言从本章开始,我们进入Linux
系统编程
最后一节多线程的学习
yy_上上谦
·
2023-09-16 13:38
Linux
linux
服务器
Linux
系统编程
—socket网络编程
Linux
系统编程
—socket网络编程理论概念1.TCP与UDP对比端口号作用socket开发过程服务端1.socket创建套接字2.bind绑定IP+端口3.listen监听客户端4.accept接收客户端
不会编程的小江江
·
2023-09-16 04:25
linux系统编程
linux
c语言
网络
线程池的实现
目录一、线程池的实现1.什么是线程池2.设计线程类3.设计线程池类4.运行5.RAII加锁改造二、利用单例模式改造线程池1.复习2.饿汉模式3.懒汉模式关于
系统编程
的知识我们已经学完了,最后我们需要利用之前写过的代码实现一个线程池
聪明的骑士
·
2023-09-16 01:37
Linux
开发语言
c++
算法
linux
数据结构
【Linux
系统编程
】signal与sigaction
#includetypedefvoid(*sighandler_t)(int);sighandler_tsignal(intsignum,sighandler_thandler);sighandler_t参数是一个无返回值,参数为int的函数指针。signum参数代表多少号信号。man手册中的解释:signal()的行为因UNIX版本而异,并且还具有历史上不同版本的Linux各不相同。避免其使用:
小鳄鱼爱吃薯片
·
2023-09-15 22:23
Linux系统编程
算法
开发语言
linux
Linux
系统编程
(二):文件和目录
参考引用UNIX环境高级编程(第3版)黑马程序员-Linux
系统编程
1.文件存储一个文件主要由两部分组成,dentry(目录项)和Inode所谓的删除文件,就是删除Inode,但数据其实还是在硬盘上,以后会覆盖掉
Robot_Yue
·
2023-09-15 21:14
Linux系统编程
linux
运维
服务器
c++
学习
笔记
算法
Linux
系统编程
--IO系统调用
文章目录一、I/O系统调用1.open()打开文件1.1所需基础知识1.2.open()详解1.3示例代码2.read()读取文件2.1.基础知识2.2.read()详解2.3.读入所有字节3.write()写文件3.1.基础背景知识3.2.write()详解3.3.示例代码3.4.注意点3.4.1.同步IO1.fsync()和fdatasync()2.sync()4.close()关闭文件5.l
ccb_
·
2023-09-15 20:04
Linux
linux
运维
服务器
Linux
系统编程
-C++ I/O库
文章目录一、总述二、输出缓冲三、文件输入输出四、string流五、输入输出格式总述1、控制布尔值的格式2、指定整型值的进制3、在输出中指出进制4、控制浮点数格式4.1、指定打印精度5、输出空白六、未格式化的输入输出操作一、总述C++使用标准库类来处理面向流的输入和输出:iostream处理控制台IO。fstream处理命名文件IO。stringstream完成内存string的IO。头文件类型io
ccb_
·
2023-09-15 20:01
Linux
linux
c++
java
Linux编程
之线程池的设计与实现
Linux编程
之线程池的设计与实现(C++98)代码假设服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。
Z初的梦想
·
2023-09-15 15:12
stm32
嵌入式硬件
操作系统启动过程
socket/stl/awklinux软硬件驱动Linux程序设计中文版第四版Linux中国翻译项目VimPracticeLinux命令必知必会Unix环境高级编程代码&学习笔记ubuntudeb软件包搜索下载
系统编程
Z初的梦想
·
2023-09-15 15:39
嵌入式硬件
stm32
2018-08-16 Linux系统基础及安全
系统编程
:搭建开发环境,了解Linux上程序开发过程。编辑工具:Vim、IDE;编译工
kotw_zjc
·
2023-09-15 14:09
【Linux
系统编程
】冯诺依曼体系结构
文章目录1.冯诺依曼体系结构2.为什么要存储器(内存)?作用是什么?3.数据流向分析这篇文章,我们来认识一下冯诺依曼体系结构1.冯诺依曼体系结构我们常见的计算机,如笔记本;我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系那我们接下来就来分析一下这个体系结构:首先输入设备比如我们所熟悉的键盘、话筒、摄像头、网卡、磁盘等,就是输入设备。那输入设备的作用是什么呢?,计算机呢本质其实就是来计算和处理
YIN_尹
·
2023-09-15 11:57
Linux
系统编程
linux
运维
服务器
Linux
系统编程
多线程(C++)
目录【1】引入如何看待地址空间和列表【2】什么是线程【3】线程的优点【4】线程的缺点【5】线程异常【6】线程用途【7】线程VS进程【8】Linux线程控制【8.1】查看轻量级线程指令【8.2】线程创建【8.2.1】POSIX线程库【8.2.2】创建线程【8.2.3】一次性创建一个线程【8.2.4】一次性创建多个线程【8.2】线程终止【8.3】线程取消【8.4】线程等待【8.5】分离线程【9】线程I
傻响
·
2023-09-14 13:51
Linux
linux
进程篇——进程间通信:共享内存
QQ群号:513683159【相互学习】内容来源: 《Linux
系统编程
》、《Linux网络编程》、《Unix环境高级编程》目录:共享内存一、函数简介(1)shmget()——共享内存创建函数(2)shmat
惺忪牛犊子
·
2023-09-14 13:43
嵌入式
c语言
linux
运维
linux 下内存泄漏分析
linux下内存泄漏分析Linux下内存问题检测神器:Valgrind在写大型C/C++工程时难免会发生内存泄漏现象,
系统编程
中一个重要的方面就是有效地处理与内存相关的问题。
Z初的梦想
·
2023-09-14 08:10
stm32
单片机
嵌入式硬件
Linux下的
系统编程
——信号(十一)
前言:信号在我们的生活中随处可见,如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪......他们都有共性,信号是信息的载体,Linux/UNIX环境下,古老、经典的通信方式,现下依然是主要的通信手段。Unix早期版本就提供了信号机制,但不可靠,信号可能丢失。Berkeley和AT&T都对信号模型做了更改,增加了可靠信号机制。但彼此不兼容。POSIX.1对可靠信号例程进行了标准化
我想学LINUX
·
2023-09-14 08:30
linux
ubuntu
信号
alarm
kill
setitimer
信号捕捉
【Linux
系统编程
】文件描述符与重定向
#includeintdup(intoldfd);intdup2(intoldfd,intnewfd);dup函数是让最低位没有被使用的文件描述符也指向oldfd这个文件描述符所指向的文件,成功返回最低那个没有被使用的文件描述符,失败返回-1。dup2函数是让newfd这个文件描述符也指向oldfd这个文件描述符所指向的文件,如果newfd已经被使用了,那么就关闭它所指向的文件,让newfd指向o
小鳄鱼爱吃薯片
·
2023-09-13 21:31
Linux系统编程
算法
数据结构
linux
系统编程
目录摘要一、linux系统调用文件操作1.1系统调用基本概念1.2文件I/O基础1.2.1文件描述符1.2.2open打开文件1.2.3read函数1.2.4write函数1.2.5close函数1.2.6lseek函数1.2.7示例代码1.3静态文件与inode1.4终止运行1.4.1_exit()和_Exit()函数1.4.2exit()函数二、C标准库文件操作2.1标准I/O库简介2.2标准
别问,问就是全会
·
2023-09-13 21:35
嵌入式系统
linux
深入了解fcntl函数:Linux
系统编程
中的文件控制
文章目录概述介绍函数原型与参数拓展:fcntl改文件属性总结概述摘要:fcntl函数是Linux
系统编程
中一个重要的函数,用于对文件描述符进行各种控制操作。
LewGarben
·
2023-09-13 03:46
linux
运维
服务器
Linux
系统编程
(一):文件 I/O
参考引用UNIX环境高级编程(第3版)黑马程序员-Linux
系统编程
1.UNIX基础知识1.1UNIX体系结构(下图所示)从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境
Robot_Yue
·
2023-09-13 00:04
Linux系统编程
linux
学习
笔记
服务器
机器人
c语言
linux6.3支持gcc版本,
Linux编程
中GCC对C++标准支持和如何选择GCC版本使用
关注公众号cpp_coder,学习更多实用技术。【说明】本公众号纯属于个人,没有商业运作。推送文章是C++技术网原创文章,供大家学习。希望大家多多支持,多多推荐。我们所有的推送,没有收入一分钱,只是为了大家能够有一个公众号学习最朴实的技术。如果文章写得不好的地方,请指正。文章来源:C++技术网原创文章版权所有,未经授权,禁止转载。目前C语言的标准有:C89(ANSIC)、C90、C95、C99(I
飞地APP
·
2023-09-12 15:11
linux6.3支持gcc版本
Golang(四)语言特性(上)
Golang是一种强类型的通用
系统编程
语言,具有垃圾回收机制并明确支持并发编程。
云时代的运维开发
·
2023-09-12 13:08
《Linux
系统编程
训练营》4_进程参数编程
进程空间概要分析问题execve(...)的参数分别是什么?有什么意义?intcreate_process(char*path,char*args[]){intret=fork();if(ret==0){execve(path,args,NULL);}returnret;}execve的本质是系统调用而非函数!!main函数(默认进程入口)intmain(intargc,char*argv[])a
·
2023-09-11 23:37
linux
【
Linux编程
Shell自动化脚本】03 shell四剑客(find、sed、grep、awk)
文章目录一、find1.常用expression2.时间参数3.其他选项参数3.1查找深度3.2执行命令二、sed1.常用命令选项2.常用动作脚本命令2.1s替换2.2已匹配字符串标记&2.3在当前行前后插入文本a\和i\2.4p打印指定行2.5匹配行的方式2.5.1以数字形式指定行区间2.5.2用文本模式指定行区间三、grep1.常用选项2.示例四、awk1.常用选项参数2.脚本命令3.脚本命令
北顾.岛城
·
2023-09-11 11:05
Linux
Shell
linux
自动化
服务器
bash
Linux
系统编程
笔记--系统(文件)I/O操作
目录1--文件描述符2--系统I/O常用函数3--标准I/O和系统I/O的区别4--原子操作5--dup()和dup2()6--fcntl()和ioctl()1--文件描述符文件描述符的实质:一个整型数,一个数组下标(数组的元素指向文件结构体);文件描述符优先使用可用范围内最小的;标准输入(stdin)的文件描述符为0;标准输出(stdout)的文件描述符为1;标准错误(stderr)的文件描述符
晓晓纳兰容若
·
2023-09-11 08:29
linux系统编程
linux
Linux
系统编程
02--vim-gcc库的制作与使用
作者介绍1.1vim的三种模式1.2编辑模式下光标的移动1.3vim下的删除1.4vim中的撤销与反撤销1.5vim中的复制与粘贴1.6查找和替换1.7vim文本输入模式下的指令1.8vim末行模式下的命令(已熟悉)1.9vim的快速翻屏1.10vim的配置文件2.gcc的工作流程(继续熟悉)3.静态库和动态库的制作和使用3.1库的介绍3.2静态库的制作与使用3.3动态库(共享库)---nmtes
骊山道童
·
2023-09-10 19:58
Linux操作系统
linux
vim
编辑器
浅析linux异步io框架 io_uring
目录背景简介io_uring系统APIliburing高级特性编程示例性能对比模式对比线上应用背景简介熟悉Linux
系统编程
的同学都清楚,Linux并没有提供完善的异步IO(网络IO、磁
linux大本营
·
2023-09-10 06:49
linux
linux内核
异步io
io_uring
epoll
Linux下的
系统编程
——共享存储映射(十)
前言:mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的
我想学LINUX
·
2023-09-09 09:27
linux
mmap函数
存储映射I/O
文件间进程通信
创建共享内存
mmap通信
映射区
c语言嵌入式
系统编程
软件,C语言嵌入式
系统编程
软件设计研究论文
C语言嵌入式
系统编程
软件设计研究论文摘要:近年来,C语言编程在嵌入式系统越来越受到广大技术人员的青睐。
黄之昊
·
2023-09-08 11:26
c语言嵌入式系统编程软件
c语言编程中的注意事项,C语言在嵌入式
系统编程
时的注意事项(四)
姓名:徐娇学号:17011210547转自http://mp.weixin.qq.com/s/YUXrJbin_rnwModTY2Ds_A【嵌牛导读】C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出
LiJing李敬李敬
·
2023-09-08 11:55
c语言编程中的注意事项
C语言嵌入式
系统编程
注意事项之内存操作
C语言嵌入式
系统编程
注意事项之内存操作在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力数据指针在嵌入式系统的编程中
m0_61687959
·
2023-09-08 11:49
算法
《Unix
系统编程
手册》第三章
系统编程
概念学习
系统调用系统调用是内核提供的受控的内核入口,通过API的形式,内核提供了一系列服务供程序调用。系统调用基本特点:1、系统调用会从用户态切换到核心态,以便CPU访问受到保护的内核内存;2、系统调用的组成是固定的,每个系统调用都由唯一的数字来标识(程序通过名称标识系统调用);3、每个系统调用可以使用一套参数,对用户空间和内核空间传递的信息进行规范。系统调用执行的基本步骤:1、应用程序通过调用包装后的库
i_actor
·
2023-09-07 23:55
Unix
unix
服务器
C\C++
《Linux
系统编程
训练营》3_初试 Linux 进程
问题:strace输出中的execve(...)究竟是什么?进程理论状态切换进程生命周期Linux进程基本概念进程是Linux任务的执行单元,也是Linux系统资源的分配单位每个Linux应用程序运行后由一个或多个进程一个Linux进程可以执行一个或多个程序Linux进程有多种不同状态(即:Linux进程有不同的活法)Linux进程状态剖析就绪/运行状态(R):TASK_RUNNING阻塞状态:可
·
2023-09-07 22:40
linux
上一页
10
11
12
13
14
15
16
17
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他