/proc/$pid 进程信息说明

Linux的proc文件系统,proc/&pid与/proc/self的学习---CTF应用 目录🍺proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口,用户和应用程序可以通过proc得到系统的信息,并。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。 阅读详情

auxv

/proc/[pid]/auxv包含传递给进程的ELF解释器信息,格式是每一项都是一个unsigned long长度的ID加上一个unsigned long长度的值。最后一项以连续的两个0x00开头。举例如下:

# hexdump -x /proc/2948/auxv
0000000    0021    0000    0000    0000    0000    1a82    7ffd    0000
0000010    0010    0000    0000    0000    dbf5    1fc9    0000    0000
0000020    0006    0000    0000    0000    1000    0000    0000    0000
0000030    0011    0000    0000    0000    0064    0000    0000    0000
0000040    0003    0000    0000    0000    2040    4326    7f4a    0000
0000050    0004    0000    0000    0000    0038    0000    0000    0000
0000060    0005    0000    0000    0000    0009    0000    0000    0000
0000070    0007    0000    0000    0000    f000    4303    7f4a    0000
0000080    0008    0000    0000    0000    0000    0000    0000    0000
0000090    0009    0000    0000    0000    8e67    4327    7f4a    0000
00000a0    000b    0000    0000    0000    0000    0000    0000    0000
00000b0    000c    0000    0000    0000    0000    0000    0000    0000
00000c0    000d    0000    0000    0000    0000    0000    0000    0000
00000d0    000e    0000    0000    0000    0000    0000    0000    0000
00000e0    0017    0000    0000    0000    0000    0000    0000    0000
00000f0    0019    0000    0000    0000    3de9    1a80    7ffd    0000
0000100    001f    0000    0000    0000    4fe5    1a80    7ffd    0000
0000110    000f    0000    0000    0000    3df9    1a80    7ffd    0000
0000120    0000    0000    0000    0000    0000    0000    0000    0000
0000130

解析这个文件可以参考这段代码。

cmdline

/proc/[pid]/cmdline是一个只读文件,包含进程的完整命令行信息。如果这个进程是zombie进程,则这个文件没有任何内容。举例如下:

# ps -ef | grep 2948
root       2948      1  0 Nov05 ?        00:00:04 /usr/sbin/libvirtd --listen

# cat /proc/2948/cmdline
/usr/sbin/libvirtd--listen

comm

/proc/[pid]/comm包含进程的命令名。举例如下:

# cat /proc/2948/comm
libvirtd

cwd

/proc/[pid]/cwd是进程当前工作目录的符号链接。举例如下:

# ls -lt /proc/2948/cwd
lrwxrwxrwx 1 root root 0 Nov  9 12:14 /proc/2948/cwd -> /

environ

/proc/[pid]/environ显示进程的环境变量。举例如下:

# strings /proc/2948/environ
LANG=POSIX
LC_CTYPE=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NOTIFY_SOCKET=@/org/freedesktop/systemd1/notify
LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS=--listen
LIBVIRTD_NOFILES_LIMIT=2048

exe

/proc/[pid]/exe为实际运行程序的符号链接。举例如下:

# ls -lt /proc/2948/exe
lrwxrwxrwx 1 root root 0 Nov  5 13:04 /proc/2948/exe -> /usr/sbin/libvirtd

fd

/proc/[pid]/fd是一个目录,包含进程打开文件的情况。举例如下:

# ls -lt /proc/3801/fd
total 0
lrwx------. 1 root root 64 Apr 18 16:51 0 -> socket:[37445]
lrwx------. 1 root root 64 Apr 18 16:51 1 -> socket:[37446]
lrwx------. 1 root root 64 Apr 18 16:51 10 -> socket:[31729]
lrwx------. 1 root root 64 Apr 18 16:51 11 -> socket:[34562]
lrwx------. 1 root root 64 Apr 18 16:51 12 -> socket:[39978]
lrwx------. 1 root root 64 Apr 18 16:51 13 -> socket:[34574]
lrwx------. 1 root root 64 Apr 18 16:51 14 -> socket:[39137]
lrwx------. 1 root root 64 Apr 18 16:51 15 -> socket:[39208]
lrwx------. 1 root root 64 Apr 18 16:51 16 -> socket:[39221]
lrwx------. 1 root root 64 Apr 18 16:51 17 -> socket:[41080]
lrwx------. 1 root root 64 Apr 18 16:51 18 -> socket:[40014]
lrwx------. 1 root root 64 Apr 18 16:51 19 -> socket:[34617]
lrwx------. 1 root root 64 Apr 18 16:51 20 -> socket:[34620]
lrwx------. 1 root root 64 Apr 18 16:51 23 -> socket:[42357]
lr-x------. 1 root root 64 Apr 18 16:51 3 -> /dev/urandom
lrwx------. 1 root root 64 Apr 18 16:51 4 -> socket:[37468]
lrwx------. 1 root root 64 Apr 18 16:51 5 -> socket:[37471]
lrwx------. 1 root root 64 Apr 18 16:51 6 -> socket:[289532]
lrwx------. 1 root root 64 Apr 18 16:51 7 -> socket:[31728]
lrwx------. 1 root root 64 Apr 18 16:51 8 -> socket:[37450]
lrwx------. 1 root root 64 Apr 18 16:51 9 -> socket:[37451]
l-wx------. 1 root root 64 Apr 13 16:35 2 -> /root/.vnc/localhost.localdomain:1.log

目录中的每一项都是一个符号链接,指向打开的文件,数字则代表文件描述符。

latency

/proc/[pid]/latency显示哪些代码造成的延时比较大(使用这个feature,需要执行“echo 1 > /proc/sys/kernel/latencytop”)。举例如下:

# cat /proc/2948/latency
Latency Top version : v0.1
30667 10650491 4891 poll_schedule_timeout do_sys_poll SyS_poll system_call_fastpath 0x7f636573dc1d
8 105 44 futex_wait_queue_me futex_wait do_futex SyS_futex system_call_fastpath 0x7f6365a167bc

每一行前三个数字分别是后面代码执行的次数,总共执行延迟时间(单位是微秒)和最长执行延迟时间(单位是微秒),后面则是代码完整的调用栈。

limits

/proc/[pid]/limits显示当前进程的资源限制。举例如下:

# cat /proc/2948/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             6409                 6409                 processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       6409                 6409                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Soft Limit表示kernel设置给资源的值,Hard Limit表示Soft Limit的上限,而Units则为计量单元。

maps

/proc/[pid]/maps显示进程的内存区域映射信息。举例如下:

# cat /proc/2948/maps
......
address                   perms offset  dev   inode                      pathname
7f4a2e2ad000-7f4a2e2ae000 rw-p 00006000 08:14 6505977                    /usr/lib64/sasl2/libsasldb.so.3.0.0
7f4a2e2ae000-7f4a2e2af000 ---p 00000000 00:00 0
7f4a2e2af000-7f4a2eaaf000 rw-p 00000000 00:00 0                          [stack:94671]
7f4a2eaaf000-7f4a2eab0000 ---p 00000000 00:00 0
7f4a2eab0000-7f4a2f2b0000 rw-p 00000000 00:00 0                          [stack:94670]
......
7f4a434d0000-7f4a434d5000 rw-p 0006e000 08:14 4292988                    /usr/sbin/libvirtd
7f4a4520a000-7f4a452f7000 rw-p 00000000 00:00 0                          [heap]
7ffd1a7e4000-7ffd1a805000 rw-p 00000000 00:00 0                          [stack]
7ffd1a820000-7ffd1a821000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

其中注意的一点是[stack:<tid>]是线程的堆栈信息,对应于/proc/[pid]/task/[tid]/路径。

root

/proc/[pid]/root是进程根目录的符号链接。举例如下:

# ls -lt /proc/2948/root
lrwxrwxrwx 1 root root 0 Nov  9 12:14 /proc/2948/root -> /

stack

/proc/[pid]/stack显示当前进程的内核调用栈信息,只有内核编译时打开了CONFIG_STACKTRACE编译选项,才会生成这个文件。举例如下:

# cat /proc/2948/stack
[<ffffffff80168375>] poll_schedule_timeout+0x45/0x60
[<ffffffff8016994d>] do_sys_poll+0x49d/0x550
[<ffffffff80169abd>] SyS_poll+0x5d/0xf0
[<ffffffff804c16e7>] system_call_fastpath+0x16/0x1b
[<00007f4a41ff2c1d>] 0x7f4a41ff2c1d
[<ffffffffffffffff>] 0xffffffffffffffff

statm

/proc/[pid]/statm显示进程所占用内存大小的统计信息,包含七个值,度量单位是page(page大小可通过getconf PAGESIZE得到)。举例如下:

# cat /proc/2948/statm  
72362 12945 4876 569 0 24665 0

各个值含义:
a)进程占用的总的内存;
b)进程当前时刻占用的物理内存;
c)同其它进程共享的内存;
d)进程的代码段;
e)共享库(从2.6版本起,这个值为0);
f)进程的堆栈;
g)dirty pages(从2.6版本起,这个值为0)。

syscall

/proc/[pid]/syscall显示当前进程正在执行的系统调用。举例如下:

# cat /proc/2948/syscall
7 0x7f4a452cbe70 0xb 0x1388 0xffffffffffdff000 0x7f4a4274a750 0x0 0x7ffd1a8033f0 0x7f4a41ff2c1d

第一个值是系统调用号(7代表poll),后面跟着6个系统调用的参数值(位于寄存器中),最后两个值依次是堆栈指针和指令计数器的值。如果当前进程虽然阻塞,但阻塞函数并不是系统调用,则系统调用号的值为-1,后面只有堆栈指针和指令计数器的值。如果进程没有阻塞,则这个文件只有一个“running”的字符串。

内核编译时打开了CONFIG_HAVE_ARCH_TRACEHOOK编译选项,才会生成这个文件。

wchan

/proc/[pid]/wchan显示当进程sleep时,kernel当前运行的函数。举例如下:

# cat /proc/2948/wchan
kauditd_
OpenWRT进程内存监控实战:解析/proc/$PID/status关键指标 本文详细介绍了如何在OpenWRT系统中通过解析`/proc/$PID/status`文件监控进程内存占用,帮助开发者精准定位内存泄漏问题。文章提供了多种进程定位方法、关键内存指标解析及自动化监控脚本,适用于嵌入式设备性能优化场景。 阅读详情

相关推荐

Linux系统/proc/cpuinfo文件详解与CPU信息解析

在Linux系统性能调优和硬件信息获取中,/proc虚拟文件系统扮演着关键角色。作为内核与用户空间交互的接口,/proc目录下的文件动态反映了系统运行状态,其中/proc/cpuinfo专门提供CPU的详细架构信息。通过解析该文件,可以获取处理器型号、核心数量、缓存大小、支持指令集等关键参数,这些数据对系统管理员进行资源分配、开发者进行编译优化以及性能工程师进行瓶颈分析都具有重要价值。特别是在多核处理器和超线程技术普及的当下,准确解读physical id、core id等字段能帮助识别真实的CPU拓扑结构

aoe41606的博客 337

Linux /proc/$pid Linux进程文件

Linux中 /proc/$pid 目录下 存放着所有的进程信息 https://www.linuxprobe.com/linux-proc-pid.html 首先在/root目录下,启动一个进程 # 启动一个简单的文件服务器,访问端口9999 python -m http.server 9999 查询这个进程的pid 号 另外起一个终端shell,去查询刚才进程的pid号 lsof -i:9999 # 或 ps -ef | grep python 我的pid号是 1780 # 进入进程的li.

_Tsun 的博客 1053

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 223

Linux内存管理 -- /proc/{pid}/smaps讲解

本文包括如下三部分: 基本介绍与输出介绍 第一行基础信息讲解 详细信息讲解 3.1 Size 3.2 Rss 3.3 Pss、Shared/Private_Clean/Dirty 3.4 Referenced 3.5 Anonymous 3.6 ShmemPmdMapped 3.7 Shared/Private_Hugetlb 3.8 Swap 3.9 SwapPss 3.10 KernelPageSize、MMUPageSize 3.11 Locked 3.12 THPeli

~~ LINUX ~~ 8221

ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。

m0_61544122的博客 674

Experion PKS系列开发:I_O模块_ExperionPKS与第三方I-O模块的集成

通过上述步骤,可以成功将第三方I/O模块集成到Honeywell Experion PKS系统中,实现对现场设备的监视和控制。集成过程中需要注意选择合适的第三方模块,配置正确的通信参数,编写正确的控制逻辑,并进行充分的测试,以确保系统的稳定性和可靠性。不同的通信协议(如Modbus、Profibus、Ethernet/IP、CANopen、OPC UA)有其独特的配置和编程方法,但总体流程相似。在实际应用中,根据项目需求选择合适的协议和模块,可以有效提高系统的灵活性和适应性。

zhubeibei168的博客 1101

了解/proc/{pid}/目录

在Linux系统中,每个运行中的进程在/proc/{pid}/目录下都有一些虚拟文件,用于提供进程的各种信息。

wt_better的博客 985

从零到一,打造你的无人机侦察兵!树莓派+Python+MQTT,实时目标检测全攻略

物联网、人工智能与计算机视觉三大前沿技术的深度融合。

u013558123的博客 1473

Linux /proc/$pid部分内容详解

auxv /proc/[pid]/auxv包含传递给进程的ELF解释器信息,格式是每一项都是一个unsigned long长度的ID加上一个unsigned long长度的值。最后一项以连续的两个0x00开头。举例如下: # hexdump -x /proc/2948/auxv 0000000 0021 0000 0000 0000 0000 1a82 ...

weixin_30681615的博客 823

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 930

【IPC】ONVIF Device Manager 测试工具

介绍onvif 协议测试工具

以实战经验介绍行业知识 1957

[网鼎杯 2020 白虎组]PicDown(/proc/self/cmdline)

这道题感觉和之前做过的[V&N2020 公开赛]CHECKIN很像,这道题多考了个/proc/self。记录一下这个目录的作用吧。 /proc/self/目录的意义 我们都知道可以通过/proc/$pid/来获取指定进程的信息,例如内存映射、CPU绑定信息等等。如果某个进程想要获取本进程的系统信息,就可以通过进程的pid来访问/proc/$pid/目录。但是这个方法还需要获取进程pid,在fork、daemon等情况下pid还可能发生变化。为了更方便的获取本进程的信息,linux提供了/proc/s

qq_44657899的博客 1764

携程滑块、点选验证码登录识别逆向

本文分析了携程登录系统的风控机制,主要包含三种验证场景:无验证码、滑块验证码和二次图标点选验证码。通过跟踪risk_inspect风控接口,发现验证流程采用标准AES加密,需提交设备指纹等加密信息。当触发验证码时,需额外提交包含轨迹坐标的verify_msg参数及token/rid参数。最终通过风控检测后,需使用一致的指纹参数和验证token完成加密登录。文章强调所有分析仅用于学习,代码实现需确保符合法律规范。

码王吴彦祖的博客 1100

/proc文件系统的特点和/proc文件的说明

/proc文件系统是一种特殊的、由软件创建的文件系统,内核使用它向外界导出信息,/proc系统只存在内存当中,而不占用外存空间。 /proc下面的每个文件都绑定于一个内核函数,用户读取文件时,该函数动态地生成文件的内容。也可以通过写/proc文件修改内核参数 /proc目录下的文件分析 /proc/$pid关于进程$pid的信息目录。每个进程在/proc 下有一个名为其进程号的目...

1219

[Dify实战] 做企业内部助手时,最容易被低估的不是提示词,而是权限、状态同步和反馈回写

这篇文章围绕“做企业内部助手时”这个具体问题展开,很多团队做企业内部助手时,最先优化的是提示词,但真正决定系统能不能上线长期跑下去的,往往是权限边界、状态同步和反馈回写闭环。正文会结合Dify拆解节点设计、配置建议和测试样例,补充关键步骤、检查点和常见坑,帮助读者判断第一版该怎么落地,并把经验复用到自己的真实业务场景中。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 68

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux /proc/$pid/smaps的含义

(1) 问题 /proc/pid/smaps反应了运行时的进程的内存影响,系统的运行时库(so),堆,栈信息均可在其中看到。下面是libstdc++.so这个文件在一个进程中的映射信息,其中的Size表示线性地址空间大小,Rss表示时间占用的物理内存大小. Rss=Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty 其中的Sha

WangMark的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【shell】利用/proc/pid/status记录进程的物理内存和虚拟内存

【shell】利用/proc/[pid]/status记录进程的物理内存和虚拟内存1、/proc/[pid]/status 字段说明2、记录进程内存的脚本程序 1、/proc/[pid]/status 字段说明 使用cat /proc/[pid]/status 可以查看当前的进程状态。 部分字段解释如下: 这里VmRSS就指当前进程所占用的物理内存,VmSize指当前进程占用的虚拟内存。 更多字段解释参考博客https://blog.youkuaiyun.com/zjl_1026_2001/article/detai

Muzythoof的博客 1758

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

/proc/$pid/status内容说明

/proc/9744$ cat status Name: gedit /*进程的程序名*/ State: S (sleeping) /*进程的状态信息,具体参见http://blog.chinaunix.net/u2/73528/showart_1106510.html*/ Tgid: 9744 /*线程组号*/ Pid: 9744 /*进程pid*/ PPid: 7672 /*父进程的

740

深入解析 Linux 进程状态文件 /proc/[pid]/status

本文深入解析了Linux系统中/proc/[pid]/status文件的关键作用,详细介绍了进程状态、内存使用、线程和信号等核心字段的解读方法。通过实际案例展示了如何利用该文件进行性能监控、问题排查和安全审计,为系统管理员和开发者提供了实用的Linux进程管理技巧。

weixin_28309571的博客 658

Linux进程生命周期精准追踪:从ps命令到/proc内核原理详解

在Linux系统运维与性能调优中,进程生命周期管理是理解系统行为、进行故障排查的核心基础。进程作为系统资源分配和调度的基本单位,其启动时间、运行时长等时间信息直接反映了系统的运行状态和服务的健康度。从原理层面看,Linux内核通过/proc虚拟文件系统暴露进程的详细状态,其中包含了进程创建时的时钟滴答数等原始计时数据。掌握这些底层机制的技术价值在于,能够超越命令行工具的表层输出,实现精准的资源监控、服务状态追踪和异常行为诊断。在实际应用场景中,无论是长期运行的服务守护进程、定时执行的批处理作业,还是突发的资

weixin_34228387的博客 1607

修改内核源码绕过反调试检测(Android10)

一、Android反调试 反调试在代码保护中扮演着非常重要的角色,虽然不能完全阻止攻击者,但是能加大攻击者的分析时间成本。目前绝大多数Android app都加固了,为了防止App被调试分析,加固功能中添加了各种反调试功能,比如:自己ptrace自己、检查函数执行时间、读取/proc/$pid/wchan或者/proc/$pid/task/$pid/wchan文件信息判断调试状态、读取/proc/$pid/stat或者/proc/$pid/task/$pid/stat文件信息判断调试状态、读取/...

哆啦安全 3931

Linux内核设备驱动/proc文件系统详解

/proc文件系统提供了一个基于文件的Linux 内部接口。它可以用于确定系统的各种不同设备和进程的状态。对他们进行配置。因而,理解和应用有关这个文件系统的知识是理解你的Linux 系统的关键。 一、/proc文件系统的特点和/proc文件的说明 /proc文件系统是一种特殊的、由软件创建的文件系统,内核使用它向外界导出信息,/proc系统只存在内存当中,而不占用磁盘空间。 /proc下面的每个文...

快乐程序员的博客 1353

ubuntu shell 脚本循环查看某个进程的内存使用情况

#!/bin/bash while : do #pid=$(ps aux | grep -w "valgrind"| grep -v grep | awk '{print $2}') pid=$(ps aux | grep -w "redisAlgVideoCnRT"| grep -v grep | awk '{print $2}') echo 12344 echo $pid #watch -n 0 cat /proc/$pid/status if [ ! $pid ]; then echo no p.

qq_31610789的博客 709

查看java进程内存占用情况

查看运行的jar的进程 ps -aux|grep java 查看到的进程号为5031 通过命令查看进程的情况 cat /proc/$PID/status 参数说明: VmPeak代表当前进程运行过程中占用内存的峰值. VmSize代表进程现在正在占用的内存 VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘. VmHWM是程序得到分配到物理内存的峰值. VmRSS是程序现在使用的物理内存. VmData:表示进程数据段的大小. VmStk..

wangpeng1201的博客 8786

Linux /proc 文件系统实战:手动计算 top 命令的 CPU% 与 MEM% 指标

本文深入解析Linux /proc文件系统,教你如何手动计算top命令中的CPU%与MEM%指标。通过实战脚本演示,详细讲解如何从/proc/[pid]/stat和/proc/meminfo等文件中提取原始数据,并转换为可读性强的性能指标,帮助开发者深入理解Linux系统资源监控的底层原理。

weixin_33912453的博客 370
上一篇: QT支持ttf和fontconfig
下一篇: linux stdout重定向
dataowner
博客等级 码龄19年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值