当前位置:首页 » 存储配置 » PTM存储

PTM存储

发布时间: 2022-04-03 14:56:48

A. C++怎么将系统时间(时、分、秒)保存到变量中

无时无刻将系统时间读取过来,并存放到变量当中

B. 2021年粤港澳大湾区车展将于6月12日举办 多款新车将登台

通过优化,Taycan Cross Turismo的风阻系数仅为0.26Cd,这对于降低能耗以及续航有相当大的帮助。没有百叶窗的通风口采用电子控制,并且首次集成到空调系统的全自动控制中。可选的热泵利用来自动力系统的废热来有效地加热汽车内部。这方面为乘客提供了便利,特别是在低温环境下。

在动力层面上,Taycan Cross Turismo与普通的Taycan相比,在同为入门车型上,Taycan Cross Turismo的动力参数要更强一些。在Turbo S车型上,<

C. C++ 如何显示系统时间并且保存到变量中

time_t pBeginTime = time(NULL);
struct tm *ptmBegin; //需要一个tm结构体,这个结构体是标准库里的
ptmBegin= gmtime(&pBeginTime); //把time_t给tm结构体
CString strBT;
strBT.Format(“%d月%d日 %d:%d”,ptmBegin->tm_mon,ptmBegin->tm_mday,ptmBegin->tm_hour,ptmBegin->tm_min);//用Format把tm类型转换成CString类型

string time=strBT.GetBuffer(); //把CString转换成string类型

D. 你手中有些从右向左读的诗句,比如“rose red red a like is luve my O”。 现在为了阅读这些美妙的诗句

//写了一个支持双空格,记录输出长度不变的代码
//rose red red a like is luve my O 输出O my luve is like a red red rose

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <fstream>
using namespace std;
#define DELIMITER " "
int main(int argc,char** argv)
{
if(argc!=3)
{
cout << "Rerun progam! cmd Argument must take two file names" <<endl;
exit(0);
}
char buf[512]={0};
fstream out(argv[1]);
fstream in(argv[2]);
while(out.getline(buf,512))
{
int len = strlen(buf)+1;
int last = len - 1;
int value_count = 0;//每个单词的长度
int total_count = 0;//偏移到指针移到动的
char *pnew = new char[len];
memset(pnew,0,len);
char *ptmp1 = buf;
char *ptmp2 = buf;
while(*ptmp1)
{
if(*ptmp1==' ')
{
total_count += value_count;
strncpy(pnew+(last-total_count),ptmp2,value_count);//把单词复制到目的地
value_count++;
total_count += 1;
strncpy(pnew+(last-total_count)," ",1);//空格
ptmp2 = ptmp2 + value_count; //修改指针指向
value_count=0;
}
else value_count++;
ptmp1++;
}
if(value_count!=0)//最后一个单词处理。
{
total_count += value_count;
strncpy(pnew+(last-total_count),ptmp2,value_count);
ptmp2 = ptmp2+value_count;
}
in << pnew << endl;
delete[]pnew;
memset(buf,0,sizeof(buf));
}
}

E. 戴尔BIOS firmwareTPM 是什么

PM安全芯片,是指符合TPM(Trusted Platform Mole,可信赖平台模块)标准的安全芯片,它能有效地保护PC、防止非法用户访问

TPM标准:1999年10月,多家IT巨头联合发起成立可信赖运算平台联盟(Trusted Computing Platform Alliance,TCPA),初期加入者有康柏 、HP 、IBM、Intel、微软等,该联盟致力于促成新一代具有安全且可信赖的硬件运算平台。

2003年3月,TCPA增加了诺基亚 、索尼等厂家的加入,并改组为可信赖计算组织(Trusted Computing Group,TCG),希望从跨平台和操作环境的硬件和软件两方面,制定可信赖电脑相关标准和规范。并在并提出了TPM规范,目前最新版本为1.2。

符合TPM的芯片首先必须具有产生加解密密匙的功能,此外还必须能够进行高速的资料加密和解密,以及充当保护BIOS和操作系统不被修改的辅助处理器。

(5)PTM存储扩展阅读:

TPM安全芯片用途十分广泛,配合专用软件可以实现以下用途:

1、存储、管理BIOS开机密码以及硬盘 密码。以往这些事务都是由BIOS做的,玩过的朋友可能也知道,忘记了密码只要取下BIOS电池,给BIOS放电就清除密码了。如今这些密钥实际上是存储在固化在芯片的存储单元中,即便是掉电其信息亦不会丢失。相比于BIOS管理密码,TPM安全芯片的安全性要大为提高。

2、TPM安全芯片可以进行范围较广的加密。TPM安全芯片除了能进行传统的开机加密以及对硬盘进行加密外,还能对系统登录、应用软件登录进行加密。比如目前咱们常用的MSN、QQ、网游以及网上银行的登录信息和密码,都可以通过TPM加密后再进行传输,这样就不用担心信息和密码被人窃龋

3、加密硬盘的任意分区。我们可以加密本本上的任意一个硬盘分区,您可以将一些敏感的文件放入该分区以策安全。其实有些本本厂商采用的一键恢复功能,就是该用途的集中体现之一(其将系统镜像放在一个TPM加密的分区中)。

F. vc用什么存储坐标

CPoint类或者POiNT结构体,他们的表示存储一个点的X,Y轴坐标

G. 如何在进程崩溃后打印堆栈并防止数据丢失

进程在运行过程中遇到逻辑错误, 比如除零, 空指针等等, 系统会触发一个软件中断.
这个中断会以信号的方式通知进程, 这些信号的默认处理方式是结束进程.
发生这种情况, 我们就认为进程崩溃了.

进程崩溃后, 我们会希望知道它是为何崩溃的, 是哪个函数, 哪行代码引起的错误.
另外, 在进程退出前, 我们还希望做一些善后处理, 比如把某些数据存入数据库, 等等.

下面, 我会介绍一些技术来达成这两个目标.

1. 在core文件中查看堆栈信息

如果进程崩溃时, 我们能看到当时的堆栈信息, 就能很快定位到错误的代码.
在 gcc 中加入 -g 选项, 可执行文件中便会包含调试信息. 进程崩溃后, 会生成一个 core 文件.
我们可以用 gdb 查看这个 core 文件, 从而知道进程崩溃时的环境.

在调试阶段, core文件能给我们带来很多便利. 但是在正式环境中, 它有很大的局限:
1. 包含调试信息的可执行文件会很大. 并且运行速度也会大幅降低.
2. 一个 core 文件常常很大, 如果进程频繁崩溃, 硬盘资源会变得很紧张.

所以, 在正式环境中运行的程序, 不会包含调试信息.
它的core文件的大小, 我们会把它设为0, 也就是不会输入core文件.
在这个前提下, 我们如何得到进程的堆栈信息呢?

2. 动态获取线程的堆栈

c 语言提供了 backtrace 函数, 通过这个函数可以动态的获取当前线程的堆栈.
要使用 backtrace 函数, 有两点要求:
1. 程序使用的是 ELF 二进制格式.
2. 程序连接时使用了 -rdynamic 选项.
-rdynamic可用来通知链接器将所有符号添加到动态符号表中, 这些信息比 -g 选项的信息要少得多.

下面是将要用到的函数说明:
#include <execinfo.h>

int backtrace(void **buffer,int size);
用于获取当前线程的调用堆栈, 获取的信息将会被存放在buffer中, 它是一个指针列表。
参数 size 用来指定buffer中可以保存多少个void* 元素。
函数返回值是实际获取的指针个数, 最大不超过size大小
注意: 某些编译器的优化选项对获取正确的调用堆栈有干扰,
另外内联函数没有堆栈框架; 删除框架指针也会导致无法正确解析堆栈内容;

char ** backtrace_symbols (void *const *buffer, int size)
把从backtrace函数获取的信息转化为一个字符串数组.
参数buffer应该是从backtrace函数获取的指针数组,
size是该数组中的元素个数(backtrace的返回值) ;
函数返回值是一个指向字符串数组的指针, 它的大小同buffer相同.
每个字符串包含了一个相对于buffer中对应元素的可打印信息.
它包括函数名,函数的偏移地址, 和实际的返回地址.
该函数的返回值是通过malloc函数申请的空间, 因此调用者必须使用free函数来释放指针.
注意: 如果不能为字符串获取足够的空间, 函数的返回值将会为NULL.

void backtrace_symbols_fd (void *const *buffer, int size, int fd)
与backtrace_symbols 函数具有相同的功能,
不同的是它不会给调用者返回字符串数组, 而是将结果写入文件描述符为fd的文件中,每个函数对应一行.

3. 捕捉信号

我们希望在进程崩溃时打印堆栈, 所以我们需要捕捉到相应的信号. 方法很简单.
#include <signal.h>
void (*signal(int signum,void(* handler)(int)))(int);
或者: typedef void(*sig_t) ( int );
sig_t signal(int signum,sig_t handler);
参数说明:
第一个参数signum指明了所要处理的信号类型,它可以是除了SIGKILL和SIGSTOP外的任何一种信号。
第二个参数handler描述了与信号关联的动作,它可以取以下三种值:
1. 一个返回值为正数的函数的地址, 也就是我们的信号处理函数.
这个函数应有如下形式的定义: int func(int sig); sig是传递给它的唯一参数。
执行了signal()调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的哪一部分,就立即执行func()函数。
当func()函数执行结束后,控制权返回进程被中断的那一点继续执行。
2. SIGIGN, 忽略该信号.
3. SIGDFL, 恢复系统对信号的默认处理。
返回值: 返回先前的信号处理函数指针,如果有错误则返回SIG_ERR(-1)。

注意:
当一个信号的信号处理函数执行时,如果进程又接收到了该信号,该信号会自动被储存而不会中断信号处理函数的执行,
直到信号处理函数执行完毕再重新调用相应的处理函数。
如果在信号处理函数执行时进程收到了其它类型的信号,该函数的执行就会被中断。
在信号发生跳转到自定的handler处理函数执行后,系统会自动将此处理函数换回原来系统预设的处理方式,
如果要改变此操作请改用sigaction()。

4. 实例

下面我们实际编码, 看看具体如何在捕捉到信号后, 打印进程堆栈, 然后结束进程.

#include <iostream>
#include <time.h>
#include <signal.h>
#include <string.h>
#include <execinfo.h>
#include <fcntl.h>
#include <map>

using namespace std;

map<int, string> SIG_LIST;

#define SET_SIG(sig) SIG_LIST[sig] = #sig;

void SetSigList(){
SIG_LIST.clear();
SET_SIG(SIGILL)//非法指令
SET_SIG(SIGBUS)//总线错误
SET_SIG(SIGFPE)//浮点异常
SET_SIG(SIGABRT)//来自abort函数的终止信号
SET_SIG(SIGSEGV)//无效的存储器引用(段错误)
SET_SIG(SIGPIPE)//向一个没有读用户的管道做写操作
SET_SIG(SIGTERM)//软件终止信号
SET_SIG(SIGSTKFLT)//协处理器上的栈故障
SET_SIG(SIGXFSZ)//文件大小超出限制
SET_SIG(SIGTRAP)//跟踪陷阱
}

string& GetSigName(int sig){
return SIG_LIST[sig];
}

void SaveBackTrace(int sig){
//打开文件
time_t tSetTime;
time(&tSetTime);
tm* ptm = localtime(&tSetTime);
char fname[256] = {0};
sprintf(fname, "core.%d-%d-%d_%d_%d_%d",
ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday,
ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
FILE* f = fopen(fname, "a");
if (f == NULL){
exit(1);
}
int fd = fileno(f);

//锁定文件
flock fl;
fl.l_type = F_WRLCK;
fl.l_start = 0;
fl.l_whence = SEEK_SET;
fl.l_len = 0;
fl.l_pid = getpid();
fcntl(fd, F_SETLKW, &fl);

//输出程序的绝对路径
char buffer[4096];
memset(buffer, 0, sizeof(buffer));
int count = readlink("/proc/self/exe", buffer, sizeof(buffer));
if(count > 0){
buffer[count] = '\n';
buffer[count + 1] = 0;
fwrite(buffer, 1, count+1, f);
}

//输出信息的时间
memset(buffer, 0, sizeof(buffer));
sprintf(buffer, "Dump Time: %d-%d-%d %d:%d:%d\n",
ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday,
ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
fwrite(buffer, 1, strlen(buffer), f);

//线程和信号
sprintf(buffer, "Curr thread: %d, Catch signal:%s\n",
pthread_self(), GetSigName(sig).c_str());
fwrite(buffer, 1, strlen(buffer), f);

//堆栈
void* DumpArray[256];
int nSize = backtrace(DumpArray, 256);
sprintf(buffer, "backtrace rank = %d\n", nSize);
fwrite(buffer, 1, strlen(buffer), f);
if (nSize > 0){
char** symbols = backtrace_symbols(DumpArray, nSize);
if (symbols != NULL){
for (int i=0; i<nSize; i++){
fwrite(symbols[i], 1, strlen(symbols[i]), f);
fwrite("\n", 1, 1, f);
}
free(symbols);
}
}

//文件解锁后关闭, 最后终止进程
fl.l_type = F_UNLCK;
fcntl(fd, F_SETLK, &fl);
fclose(f);
exit(1);
}

void SetSigCatchFun(){
map<int, string>::iterator it;
for (it=SIG_LIST.begin(); it!=SIG_LIST.end(); it++){
signal(it->first, SaveBackTrace);
}
}

void Fun(){
int a = 0;
int b = 1 / a;
}

static void* ThreadFun(void* arg){
Fun();
return NULL;
}

int main(){
SetSigList();
SetSigCatchFun();

printf("main thread id = %d\n", (pthread_t)pthread_self());
pthread_t pid;
if (pthread_create(&pid, NULL, ThreadFun, NULL)){
exit(1);
}
printf("fun thread id = %d\n", pid);

for(;;){
sleep(1);
}
return 0;
}

文件名为 bt.cpp
编译: g++ bt.cpp -rdynamic -I /usr/local/include -L /usr/local/lib -pthread -o bt

主线程创建了 fun 线程, fun 线程有一个除零错误, 系统抛出 SIGFPE 信号.
该信号使 fun 线程中断, 我们注册的 SaveBackTrace 函数捕获到这个信号, 打印相关信息, 然后终止进程.
在输出的core文件中, 我们可以看到简单的堆栈信息.

5. 善后处理

在上面的例子中, fun 线程被 SIGFPE 中断, 转而执行 SaveBackTrace 函数.
此时, main 线程仍然在正常运行.
如果我们把 SaveBackTrace 函数最后的 exit(1); 替换成 for(;;)sleep(1);
main 线程就可以一直正常的运行下去.
利用这个特点, 我们可以做很多其它事情.

游戏的服务器进程常常有这些线程:
网络线程, 数据库线程, 业务处理线程. 引发逻辑错误的代码常常位于业务处理线程.
而数据库线程由于功能稳定, 逻辑简单, 是十分强壮的.
那么, 如果业务处理线程有逻辑错误, 我们捕捉到信号后, 可以在信号处理函数的最后,
通知数据库线程保存游戏数据.
直到数据库线程把游戏信息全部存入数据库, 信号处理函数才返回.
这样, 服务器宕机不会导致回档, 损失被大大降低.

要实现这个机制, 要求数据库模块和业务处理模块具有低耦合度.
当然, 实际应用的时候, 还有许多细节要考虑.
比如, 业务处理线程正在处理玩家的数据, 由于发生不可预知的错误, 玩家的数据被损坏了, 这些玩家的数据就不应该被存入数据库.

H. 音乐的格式都有哪些分别都是什么意思比如mp3.wma之类。

8svx,svx,ac3,aifc,aiff,aif,apl,snd,au,cda,cue,flac,fla,iff,hmp,rmi,mids,hmi,mus,cmf,gmf,midi,mid,xmi,mac,ape,mp1,mp2,mp3,mp4,m4a,mpc,mpp,mp+,ogg,aac,spx,wav,wv,wma,m3u,fpl,m3u8,pls,it,itz,s3m,dsm,s3z,xmz,j2b,mod,stm,mdz,psm,stz,ptm,umx,ptz,amf,mtm,xm,mtz,am,669

8SVX
相关信息 一种Amiga 多媒体计算器系统 8-位 声音文件。

SVX
Amiga声音(.SVX):Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩。 一般播放器默认不支持这种格式的音频,需要在安装时安装相关插件。

AC3
(全称Audio Coding3音频编码3)是杜比数码的同义词,杜比数码是一种高级音频压缩技术,它最多可以
对6个比特率最高为448kbps的单独声道进行编码。

AIFF-C
是包括能力压缩音像数据格式的一个新版本。

AIFF
是音像互换文件格式, 一个格式为存放数字式音像样品在文件。

AIF
一种音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式。

APL
一种音频文件。
打开方式:用winamp 5.0以上或更高版本播放。

SND
1.NeXT声音文件,用winamp等软件打开。
2.Mac声音资源。
3.原始的未符号化的PCM数据。
4.AKAI MPC系列抽样文件。

AU
1.Sun/NeXT/DEC/UNIX声音文件,用winamp等软件打开。
2.音频U-Law(读作“mu-law”)文件格式。

CDA
音乐文件,CD音频轨道。

CUE
1.一种Microsoft提示牌数据文件。
2.一首歌开始播放点,通常是某小节的第一拍,但也有人觉得第二拍较准,抓 Cue 点的目的是要接歌必须让两首歌速度一样,而舞曲的正常行进方式为 4/4 拍(即每个小节 4 拍,4 分音符为一拍),当一首歌在第 4 个 4 拍结束另一小节出来时, 将手上抓到的 Cue点同时播出。

FLAC
即是Free Lossless Audio Codec的缩写,中文可解为无损音频压缩编码。FLAC是一套着名的自由音频压缩编码,其特点是无损压缩。不同于其他有损压缩编码如MP3 及 AAC,它不会破任何原有的音频资讯,所以可以还原音乐光盘音质。现在它已被很多软件及硬件音频产品所支持。

FLA
一种Macromedia Flash电影。

IFF
1.交换文件格式的图像格式,用ACDSEE等软件打开。
2.Amiga ILBM。

RMI
一种MiDi音乐文件。

MIDS
一种midi流文件。

CMF
是Creative公司所使用的类似于MIDI的一种音频文件格式

MIDI
是Musical Instrument Digital Interface的缩写,直接翻译过来的意思就是乐器数字化接口,可以把MIDI理解成是一种协议、一种标准、或是一种技术,但不要把它看作是某个硬件设备.

MID
MID是midi的简称,是它的扩展名

XMI
一种midi格式的文件,是XML的一种应用,它是为了在程序员和其它程序员之间交换元数据。XMI也可以帮助程序员应用UML语言解决不同语言编程的问题,除此以外,XMI也是和数据仓库交换数据的重要方法之一。XMI比较有效地定义了不同应用,不同平台上元数据交换的问题。

APE
是目前流行的数字音乐文件格式之一。与MP3这类有损压缩方式不同,APE是一种无损压缩技术,也就是说当你将从音频CD上读取的音频数据文件压缩成APE格式后,你还可以再将APE格式的文件还原,而还原后的音频文件与压缩前的一模一样,没有任何损失。APE的文件大小大概为CD的一半,但是随着宽带的普及,APE格式受到了许多音乐爱好者的喜爱,特别是对于希望通过网络传输音频CD的朋友来说,APE可以帮助他们节约大量的资源。

MP1(MPEG-1)
用于传输1.5Mbps数据传输率的数字存储媒体运动图像及其伴音的编码,经过MPEG-1标准压缩后,视频数据压缩率为1/100-1/200,音频压缩率为1/6.5。MPEG-1提供每秒30帧352*240分辨率的图像,当使用合适的压缩技术时,具有接近家用视频制式(VHS)录像带的质量。 MPEG-1允许超过70分钟的高质量的视频和音频存储在一张CD-ROM盘上。VCD采用的就是MPEG-1的标准,该标准是一个面向家庭电视质量级的视频、音频压缩标准。

MP4
最初是一种音频格式,和MPEG-4没有太大的关系,就像MP3和MPEG-3没有关系一样。MP3是MPEG-1 Audio Layer 3 的缩写;而MP4是MPEG-2 AAC,完完全全是一种音频压缩格式, 增加了诸如对立体声的完美再现、多媒体控制、降噪等新特性,最重要的是,MP4通过特殊的技术实现数码版权保护,这是MP3所无法比拟的。

M4A
是MPEG4音频标准的文件的扩展名。在MPEG4标准中提到,普通的MPEG4文件扩展名是.mp4。自从Apple开始在它的iTunes以及 iPod中使用.m4a以区别MPEG4的视频和音频文件以来,.m4a这个扩展名变得流行了。目前,几乎所有支持MPEG4音频的软件都支持.m4a。最常用的.m4a文件是使用AAC格式的(文件),不过其他的格式,比如Apple Lossless甚至mp3也可以被放在.m4a容器里(TC注:这个container的概念类似于.mkv文件)。可以安全的把只包含音频的.mp4 文件的扩展名改成.m4a,以便让它能在你喜欢的播放器里播放,反之亦然。

MPC
也称作Musepack(以前叫MP+),由MP2派生出来,是一个免费的Windows Media Player外壳程序,如果让MPC单独工作,它并不能工作得很好,因MPC虽然已经内置了DVD解码功能,但要播放其它类型的媒 体还需要另外安装Decoder(解码器)和Filter(滤镜)。但如果已经安装了相应的Decoder和Filter,用它则异常方便,也可以说是目前功能最强大的免费播放软件。

Ogg
(ogg Vorbis) 是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的。Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划意图设计一个完全开放性的多媒体系统。目前该计划只实现了OggVorbis这一部分。

AAC
(高级音频编码技术 Advanced Audio Coding),出现于1997年,是基于MPEG-2的音频编码技术。由Fraunhofer IIS、杜比、苹果、AT&T、索尼等公司共同开发,以取代mp3格式。2000年,MPEG-4标准出台,AAC从新整合了其特性,故现又称MPEG-4 AAC,即m4a。

SPX
Sound Proction extensions,新的音频渲染引擎内置了事件建模、物理建模和灵活可升级的软DSP数字信号处理等新一代合成技术。它还能利用双声道立体声音箱模拟剧场环绕效果,并将低音提升引擎整合入音频输出当中,增强低音表现。

WAV
是Microsoft Windows本身提供的音频格式,由于Windows本身的影响力,这个格式已经成为了事实上的通用音频格式。不客气地说,它实际上是Apple电脑的AIFF格式的克隆。通常我们使用WAV格式都是用来保存一些没有压缩的音频,但实际上WAV格式的设计是非常灵活(非常复杂)的,该格式本身与任何媒体数据都不冲突,换句话说,只要有软件支持,你甚至可以在WAV格式里面存放图像。之所以能这样,是因为WAV文件里面存放的每一块数据都有自己独立的标识,通过这些标识可以告诉用户究竟这是什么数据。在WINDOWS平台上通过ACM(Audio Compression Manager)结构及相应的驱动程序(在这里通常称为CODEC,编码/解码器),可以在WAV文件中存放超过20种的压缩格式,比如ADPCM、GSM、CCITT G.711、G.723等等,当然也包括MP3格式。

WMA
全称是Windows Media Audio,它是微软公司推出的与MP3格式齐名的一种新的音频格式。由于WMA在压缩比和音质方面都超过了MP3,更是远胜于RA(Real Audio),即使在较低的采样频率下也能产生较好的音质。

M3U
是mp3播放器媒体文件的播放列表文件。你可以用任何的文本编辑器打开它,在进行播放时,播放软件并不是播放它,而是根据它的记录找到相应的文件夹或是网络地址进行播放。M3U文件的“体积”很小,因为它里面没有任何媒体数据。

fpl
音频菜单文件。

pls
媒体播放列表文件。

s3m
模块音乐文件。

热点内容
安卓快手图片怎么弄 发布:2024-11-20 21:10:21 浏览:81
linuxtomcat内存 发布:2024-11-20 20:56:28 浏览:776
小米5s存储卡 发布:2024-11-20 20:48:48 浏览:15
互联网宣传片脚本 发布:2024-11-20 20:47:09 浏览:994
穿越火线服务器ip地址和端口 发布:2024-11-20 19:59:43 浏览:701
李鸿章环球访问 发布:2024-11-20 19:54:07 浏览:197
方舟联机服务器怎么发育 发布:2024-11-20 19:53:15 浏览:937
苹果手机怎么设计密码 发布:2024-11-20 19:53:13 浏览:181
一个服务器可以搭建多少游戏 发布:2024-11-20 19:43:56 浏览:971
哈希函数c语言 发布:2024-11-20 19:43:03 浏览:746