爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      【Linux】systemV消息队列和信号量

      首页 知识中心 其他 文章详情页

      【Linux】systemV消息队列和信号量

      2025-04-15 09:19:05 阅读次数:5

      信号量,消息,返回,队列

      一、消息队列

      1、实现原理

      操作系统在内核建立一个队列,通信的两个进程AB以数据块的形式将需要发送的数据pushback到队列中,数据块是一个结构体,其中有字段标识该数据块是谁发送的,所以我们只要让不同的进程看到同一个队列就可以了

      2、系统调用接口

      (一)创建获取一个消息队列

      msgget函数的主要功能是创建一个新的消息队列或者获取一个已经存在的消息队列的标识符

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>
      int msgget(key_t key, int msgflg);
      

      返回值:成功返回一个msgid,失败返回-1
      key:ftok函数的返回值
      msgflg:标识符

      函数 msgflg 作用 示例
      msgget IPC_CREAT 如果指定键对应的消息队列不存在,则创建一个新的消息队列;若已存在,则直接返回该消息队列的标识符 msgget(key, IPC_CREAT | 0666)
      msgget IPC_EXCL 通常与 IPC_CREAT 一起使用,若同时设置这两个标志,当消息队列已经存在时,msgget 调用会失败并返回 -1,errno 会被设置为 EEXIST msgget(key, IPC_CREAT | IPC_EXCL | 0666)
      msgget 0600 消息队列的所有者具有读写权限,所属组和其他用户没有任何权限 msgget(key, 0600)
      msgget 0660 消息队列的所有者和所属组具有读写权限,其他用户没有权限 msgget(key, 0660)
      msgget 0666 消息队列的所有者、所属组和其他用户都具有读写权限 msgget(key, 0666)

      (二)控制消息队列

      msgctl用于控制消息队列的系统调用函数,通常用于对消息队列执行各种管理操作,如获取消息队列状态、设置消息队列属性以及删除消息队列等

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>
      int msgctl(int msgid, int cmd, struct msqid_ds *buf);
      

      返回值:返回0表示操作成功,返回-1表示操作失败
      msgid:消息队列标识符,msgget函数返回值
      cmd:msgctl函数的cmd参数常用命令如下:

      命令 说明
      IPC_STAT 获取消息队列的状态信息,将信息存储在buf指向的msqid_ds结构中。这些信息包括消息队列的权限、所有者信息、消息队列的大小、当前消息数量等
      IPC_SET 根据buf指向的msqid_ds结构中的值,设置消息队列的属性。可以设置的属性包括消息队列的权限、队列的最大字节数等
      IPC_RMID 删除指定的消息队列。调用该命令后,消息队列将被立即删除,所有排队的消息都会被丢弃,并且与该消息队列相关的资源也会被释放
      MSG_INFO 获取与消息队列相关的系统资源使用信息,例如当前系统中消息队列的总数、系统允许的最大消息队列数等
      MSG_STAT 该命令与IPC_STAT类似,但它返回的是一个指向struct msg_info结构的指针,该结构包含了更多关于消息队列的统计信息,如发送和接收消息的字节数等

      buf:一个指向msgid_ds结构体的指针,用于存储或提供消息队列的相关信息,msqid_ds结构包含了消息队列的各种属性,如队列的权限、所有者信息、消息队列的大小等

      (三)发送消息

      msgsnd用于向消息队列发送消息的系统调用函数,它允许进程将一个消息添加到指定的消息队列中

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>
      int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflg);
      

      返回值:成功返回0,失败返回-1
      msgid:消息队列标识符,msgget函数返回值
      msgp:指向要发送的消息结构体的指针,该结构体的第一个成员必须是 long 类型,用于指定消息的类型,后续可以包含消息的数据部分
      msgsz:消息数据部分的长度,即msgp所指向结构体中除第一个long类型成员之外的数据长度
      msgflg:该位置为0就是不设置

      函数 msgflg 作用 示例
      msgsnd IPC_NOWAIT 非阻塞发送消息,当消息队列已满,无法立即发送消息时,如果设置了该标志,msgsnd 函数会立即返回 -1,errno 被设置为 EAGAIN;若未设置该标志,msgsnd 函数会阻塞,直到消息队列有空间可以发送消息 msgsnd(msgid, &msgbuf, sizeof(msgbuf.mtext), IPC_NOWAIT)

      (四)在消息队列中获取数据块

      msgrcv用于从消息队列接收消息的系统调用函数,它允许进程从指定的消息队列中获取消息

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/msg.h>
      ssize_t msgrcv(int msgid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
      

      返回值:成功返回实际收到的消息数据部分的字节数,不包括最前面的long
      前两个参数与前面相同
      msgsz:接收消息时用于存储消息数据部分的缓冲区的最大长度
      msgtyp:如果等于0,那该函数只接收消息队列中的第一条消息,如果大于0,接收消息队列中消息类型为msgtyp的第一条消息,如果小于0,接收消息队列中消息类型小于等于msgtyp绝对值的最小类型的第一条消息
      msgflg:该位置为0就是不设置

      函数 msgflg 作用 示例
      msgrcv IPC_NOWAIT 当消息队列中没有符合要求的消息时,如果设置了该标志,msgrcv 函数会立即返回 -1,errno 被设置为 ENOMSG;若未设置该标志,msgrcv 函数会阻塞,直到有符合要求的消息进入消息队列 msgrcv(msgid, &msgbuf, sizeof(msgbuf.mtext), msgtype, IPC_NOWAIT)
      msgrcv MSG_NOERROR 如果接收到的消息长度超过了指定的缓冲区大小,若设置了该标志,消息会被截断为缓冲区大小,多余部分会被丢弃,msgrcv 函数正常返回;若未设置该标志,msgrcv 函数会返回 -1,errno 被设置为 E2BIG msgrcv(msgid, &msgbuf, sizeof(msgbuf.mtext), msgtype, MSG_NOERROR)

      二、信号量

      1、原理

      信号量是一种用于实现进程间同步与互斥的机制,信号量本质上是一个整数变量,用于控制对共享资源的访问,它可以看作是一种特殊的计数器,其值表示当前可用的共享资源数量,信号量的值可以被多个进程或线程读取和修改,通过对信号量的操作,进程或线程可以协调对共享资源的访问

      信号量的工作基于两个基本操作:P操作(wait操作)和V操作(signal操作)
      P操作:当一个进程或线程需要访问共享资源时,它会执行 P 操作。P 操作会将信号量的值减 1,如果减 1 后信号量的值大于等于 0,表示当前有可用的资源,进程或线程可以继续访问;如果减 1 后信号量的值小于 0,表示没有可用的资源,进程或线程会被阻塞,直到有其他进程或线程释放资源

      V 操作:当一个进程或线程使用完共享资源后,它会执行 V 操作,V 操作会将信号量的值加 1,如果加 1 后信号量的值小于等于 0,表示有其他进程或线程正在等待该资源,此时会唤醒一个等待的进程或线程

      2、系统调用接口

      (一)创建获取一个信号量

      semget是用于创建或获取信号量集的系统调用函数

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/sem.h>
      
      int semget(key_t key, int nsems, int semflg);
      

      返回值:成功返回信号量标识符semid,失败返回-1
      nsems:表示要创建或获取的信号量集中信号量的数量,如果是创建新的信号量集则必须大于 0,如果是获取已有的信号量集则可以为0
      semflg:标志位,用于指定创建或获取信号量集的方式和权限

      (二)控制信号量

      semctl是用于控制信号量集的系统调用函数,它可以对信号量集进行多种操作,如初始化信号量的值、获取信号量的状态、删除信号量集等

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/sem.h>
      
      int semctl(int semid, int semnum, int cmd, ...);
      

      返回值:取决于cmd的当前值,对于 GETVAL 命令,返回指定信号量的当前值,对于 IPC_STAT、IPC_SET 和 IPC_RMID 等命令,返回 0 表示成功
      semid:信号量标识符,semget函数返回
      semnum:信号量集中信号量的编号,编号从 0 开始,如果 cmd 操作不需要针对特定的信号量(如删除整个信号量集),则可以忽略该参数,通常将其设为 0
      cmd:要执行的命令,指定了对信号量集或特定信号量的操作类型

      (三)PV操作

      semop用于对信号量集执行操作的系统调用函数,它允许进程对一个或多个信号量进行原子性的 P和 V操作,从而实现进程间的同步与互斥

      #include <sys/types.h>
      #include <sys/ipc.h>
      #include <sys/sem.h>
      
      int semop(int semid, struct sembuf *sops, unsigned nsops);
      

      返回值:成功返回0,失败返回-1
      sops:指向struct sembuf结构体数组的指针,该数组包含了要对信号量集执行的操作序列
      nsops:sops数组中元素的数量,即要执行的操作序列的长度

      三、systemV IPC方法的比较

      1、描述IPC资源的结构体

      描述共享内存IPC资源结构体:

      struct shmid_kernel /* private to the kernel */
      {	
      	struct kern_ipc_perm	shm_perm;
      	struct file *		    shm_file;
      	int						id;
      	unsigned long			shm_nattch;
      	unsigned long			shm_segsz;
      	time_t					shm_atim;
      	time_t					shm_dtim;
      	time_t					shm_ctim;
      	pid_t					shm_cprid;
      	pid_t					shm_lprid;
      	struct user_struct		*mlock_user;
      };
      
      

      描述消息队列IPC资源结构体:

      struct msg_queue {
      	struct kern_ipc_perm q_perm;
      	time_t 				 q_stime;			/* last msgsnd time */
      	time_t 				 q_rtime;			/* last msgrcv time */
      	time_t				 q_ctime;			/* last change time */
      	unsigned long 		 q_cbytes;			/* current number of bytes on queue */
      	unsigned long		 q_qnum;			/* number of messages in queue */
      	unsigned long		 q_qbytes;			/* max number of bytes on queue */
      	pid_t				 q_lspid;			/* pid of last msgsnd */
      	pid_t				 q_lrpid;			/* last receive pid */
      
      	struct list_head 	 q_messages;
      	struct list_head	 q_receivers;
      	struct list_head	 q_senders;
      };
      
      

      描述信号量IPC资源结构体:

      struct sem_array {
      	struct kern_ipc_perm	sem_perm;			/* permissions .. see ipc.h */
      	time_t					sem_otime;			/* last semop time */
      	time_t					sem_ctime;			/* last change time */
      	struct sem				*sem_base;			/* ptr to first semaphore in array */
      	struct sem_queue		*sem_pending;		/* pending operations to be processed */
      	struct sem_queue		**sem_pending_last; /* last pending operation */
      	struct sem_undo			*undo;				/* undo requests on this array */
      	unsigned long			sem_nsems;			/* no. of semaphores in array */
      };
      
      

      他们有一个同样的特点就是第一个参数都是struct kern_ipc_perm类型的

      struct kern_ipc_perm
      {
      	spinlock_t		lock;
      	int				deleted;
      	key_t			key;
      	uid_t			uid;
      	gid_t			gid;
      	uid_t			cuid;
      	gid_t			cgid;
      	mode_t			mode; 
      	unsigned long	seq;
      	void			*security;
      };
      
      

      2、操作系统对IPC资源进行管理

      所有的IPC资源都有一个struct kern_ipc_perm结构,所以操作系统通过数组将这些struct kern_ipc_perm结构组织起来

      ipc_ids是 Linux 内核中用于管理IPC资源的核心数据结构

      struct ipc_ids {
          int             in_use;//记录当前系统中正在使用的IPC资源的数量
          int             max_id;//表示系统中允许的最大IPC标识符值
          unsigned short  seq;//是一个序列号,用于生成唯一的IPC标识符
          unsigned short  seq_max;//是序列号的最大值
          struct          semaphore sem;//这是一个信号量,用于对IPC资源的并发访问进行同步控制    
          struct          ipc_id_ary nullentry;//一个空的ipc_id_ary结构
          struct          ipc_id_ary* entries;//指向ipc_id_ary结构体的指针
      };
      
      struct ipc_id_ary {
          int    size;
          struct kern_ipc_perm *p[0];
      };
      

      这里的柔性数组p的作用就是维护当前操作系统中所有IPC资源,我们通过强制类型转换来通过这个数组里存的struct ipc_id_ary*找到具体的IPC对象,因为kern_ipc_perm是这三个结构体中的第一个成员,我们只要知道了一个kern_ipc_perm的地址,就相当于知道了某个具体IPC对象的起始地址,然后通过强制类型转换就可以访问到该IPC对象中的所有成员属性,这样就实现了对一个具体IPC对象的访问,如((struct shmid_kernel*)p[0])->q_stime,在kern_ipc_perm中有字段来标识该kern_ipc_perm是属于哪种IPC资源,操作系统就知道要将其强制转化成什么类型了,我们在用户层面上使用的:shmid、msqid、semid在内核上看就是p数组的下标

      ipc_id_arry属于操作系统,不属于任何进程,数组下标是线性递增的,但不会因为IPC资源的释放而改变它的递增属性,即当前操作系统中最后一个IPC资源的下标是100,释放掉这个IPC资源,下一次再创建IPC资源的时候它的下标是101,而不是100,当递增到一定值的时候,会回到0

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://s-little-monster.blog.csdn.net/article/details/145651136,作者:s_little_monster_,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:【二分查找】详细图解

      下一篇:初学Android,使用原始资源(二十三)

      相关文章

      2025-05-16 09:15:24

      模拟实现strcmp

      模拟实现strcmp

      2025-05-16 09:15:24
      gcc , 编译器 , 返回
      2025-05-16 09:15:17

      BFS解决拓扑排序(1)_课程表

      BFS解决拓扑排序(1)_课程表

      2025-05-16 09:15:17
      lt , 课程 , 队列
      2025-05-16 09:15:17

      Linux系统基础-多线程超详细讲解(5)_单例模式与线程池

      Linux系统基础-多线程超详细讲解(5)_单例模式与线程池

      2025-05-16 09:15:17
      单例 , 线程 , 队列
      2025-05-14 10:33:25

      30天拿下Rust之高级类型

      Rust作为一门系统编程语言,以其独特的内存管理方式和强大的类型系统著称。其中,高级类型的应用,为Rust的开发者提供了丰富的编程工具和手段,使得开发者可以更加灵活和高效地进行编程。

      2025-05-14 10:33:25
      Rust , type , 代码 , 函数 , 类型 , 返回
      2025-05-14 10:07:38

      30天拿下Python之迭代器和生成器

      在Python中,迭代器是一个非常重要的概念,它使得我们能够遍历一个序列而无需使用索引。迭代器不仅限于列表、元组、字符串等,我们也可以创建自定义的迭代器对象。

      2025-05-14 10:07:38
      Python , 使用 , 函数 , 生成器 , 返回 , 迭代 , 遍历
      2025-05-14 10:03:13

      AJAX-事件循环(超详细过程)

      JS有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。

      2025-05-14 10:03:13
      代码 , 任务 , 出栈 , 异步 , 执行 , 调用 , 队列
      2025-05-14 10:03:13

      数据结构-队列

      队列是仅限在一端进行插入,另一端进行删除的线性表。

      2025-05-14 10:03:13
      元素 , 入队 , 出队 , 链表 , 队列
      2025-05-14 10:02:58

      30天拿下Rust之函数详解

      在Rust中,函数是程序的基本构建块,是代码复用的基本单位,用于封装一系列执行特定操作和计算的语句。函数是可重用的代码片段,可以接受输入参数并产生输出。通过合理使用函数,可以提高代码的可读性、可维护性和可重用性。

      2025-05-14 10:02:58
      Rust , 函数 , 参数 , 表达式 , 语句 , 返回 , 返回值
      2025-05-14 09:51:15

      java怎么对线程池做监控

      对Java线程池进行监控是确保系统性能和稳定性的重要部分。监控线程池可以帮助我们了解线程池的状态,如当前活跃线程数、任务队列长度、已完成任务数等。

      2025-05-14 09:51:15
      Java , 方法 , 监控 , 示例 , 线程 , 队列
      2025-05-12 08:58:16

      O(1) 时间插入、删除和获取随机元素

      O(1) 时间插入、删除和获取随机元素

      2025-05-12 08:58:16
      int , val , 元素 , 返回
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5250262

      查看更多

      最新文章

      BFS解决拓扑排序(1)_课程表

      2025-05-16 09:15:17

      30天拿下Rust之函数详解

      2025-05-14 10:02:58

      DS初阶:链式结构实现队列

      2025-05-08 09:04:49

      MFC中如何使用定时器(SetTimer)

      2025-05-06 09:21:03

      有效括号

      2025-04-22 09:24:51

      或值至少 K 的最短子数组 I

      2025-04-18 07:11:19

      查看更多

      热门文章

      JUC(4)Callable和常用的辅助类

      2023-02-15 10:02:19

      四、消息认证码、认证加密和重放攻击

      2023-06-16 06:04:11

      RocketMq,RabbitMq比对使用

      2023-06-08 06:18:44

      【RocketMQ入门到精通】— RocketMQ初级特性能力 | Message Order,RocketMQ的消息可以是有序的哦

      2023-07-04 07:00:45

      信号量机制实现进程互斥、同步、前驱关系

      2023-07-28 08:28:23

      RabbitMQ系列(一)--------简介

      2023-07-05 06:07:12

      查看更多

      热门标签

      linux java python javascript 数组 前端 docker Linux vue 函数 shell git 节点 容器 示例
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      BFS解决拓扑排序(1)_课程表

      RabbitMQ中的AMQP是什么?

      你的赛车可以从位置 0 开始,并且速度为 +1 ,在一条无限长的数轴上行驶, 赛车也可以向负方向行驶,赛车可以按照由加速指令 'A' 和倒车指令 'R' 组成的指令序列自动行驶。

      RocketMq,RabbitMq比对使用

      VC雕虫小技集(二)

      【RDMA】技术详解(二):Send Receive操作

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号