C语言函数大全-- x 开头的函数(4)

2023-11-20

本篇介绍C语言函数大全-- x 开头的函数

1. xdr_struct

1.1 函数说明

函数声明 函数功能
bool_t xdr_struct(XDR *xdrs, void *addr, ...); 用于编码或解码结构体数据

参数:

  • xdrs : 指向 XDR 数据结构的指针,表示要进行编码或解码的数据流
  • addr : 指向待编码或解码的结构体变量的指针
  • … : 任意数量和类型的参数,用于描述结构体的成员以及它们的序列化格式的

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

1.2 演示示例

#include <stdio.h>
#include <rpc/xdr.h>

struct person 
{
    char name[20];
    int age;
};

int main() 
{
    struct person p1 = {"Huazie", 18};
    struct person p2;

    XDR xdrs;
    char buffer[100];

    // 初始化xdr流
    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_ENCODE);

    // 编码p1结构体
    if (!xdr_struct(&xdrs, "person", (char *)&p1, sizeof(p1))) {
        printf("编码失败\n");
        return -1;
    }

    // 重置xdr流
    xdr_destroy(&xdrs);
    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_DECODE);

    // 解码结构体
    if (!xdr_struct(&xdrs, "person", (char *)&p2, sizeof(p2))) {
        printf("解码失败\n");
        return -1;
    }

    // 输出结果
    printf("p1: name=%s, age=%d\n", p1.name, p1.age);
    printf("p2: name=%s, age=%d\n", p2.name, p2.age);

    return 0;
}

在上面的示例代码中,
-首先,我们定义了两个 person 类型的变量 p1p2,其中 p1 被初始化为 {name="Huazie", age=18}

  • 然后,使用 xdrmem_create() 函数创建了一个 xdr 流,将其与一个大小为 100 字节的 buffer 绑定;
  • 接着,使用 xdr_struct() 函数对 p1 结构体进行编码;
  • 再然后,调用 xdr_destroy() 函数重置了xdr 流,并使用 xdrmem_create() 函数将其重新绑定到 buffer 上;
  • 再接着,使用 xdr_struct() 函数将编码后的数据解码到 p2 变量中,并检查是否解码成功。
  • 最后,输出了 p1p2 结构体对应的成员变量的值。

2. xdr_u_char

2.1 函数说明

函数声明 函数功能
bool_t xdr_u_char(XDR *xdrs, u_char *up); 用于编码或解码 unsigned char 类型的值

参数:

  • xdrs : 指向 XDR 结构体的指针
  • up : 指向 unsigned char 类型变量的指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

2.2 演示示例

#include <stdio.h>
#include <rpc/xdr.h>

int main() 
{
    XDR xdrs;
    u_char val = 'a';
    u_char result;

    char buf[1024];
    xdrmem_create(&xdrs, buf, sizeof(buf), XDR_ENCODE);
    if (!xdr_u_char(&xdrs, &val))
    {
        printf("编码失败!");
        return 1;
    }
    // 获取编码后数据的长度
    int len = xdr_getpos(&xdrs);  

    xdrmem_create(&xdrs, buf, len, XDR_DECODE);
    if (!xdr_u_char(&xdrs, &result)) 
    {
        printf("解码失败!");
        return 1;
    }

    printf("编码前的值:%c\n", val);
    printf("编码后的长度:%d\n", len);
    printf("解码后的值:%c\n", result);
    return 0;
}

在上面的这个示例中,

  • 首先,我们定义了一个 unsigned char 类型的变量 val,并将其初始化为字符 'a'
  • 然后,使用 xdrmem_create() 函数创建了一个 XDR 流对象 xdrs,并指定流的编码方式为 XDR_ENCODE
  • 接着,调用 xdr_u_char() 函数对 val 进行编码,如果编码成功,则调用 xdr_getpos() 函数获取编码后数据的长度,该长度将作为解码时的参数;
  • 再然后,再次调用 xdrmem_create() 函数创建一个 XDR 流对象 xdrs 并指定流的编码方式为 XDR_DECODE
  • 再接着,调用 xdr_u_char() 函数对编码后的数据进行解码,并将结果存储到变量 result 中;
  • 最后输出编码前的值、编码后的长度和解码后的值。

3. xdr_u_hyper

3.1 函数说明

函数声明 函数功能
bool_t xdr_u_hyper(XDR *xdrs, u_hyper *uhp); 用于编码和解码 u_hyper 类型的数据

参数:

  • xdrs : 指向要编码或解码数据的 XDR 结构体的指针
  • uhp : 指向 u_hyper 类型变量的指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

3.2 演示示例

#include <stdio.h>
#include <rpc/xdr.h>

int main() 
{
    XDR xdrs;
    u_hyper value = 12345678901234567890ULL; // 定义一个 64 位无符号整数
    char buffer[16];
    char *bufptr = buffer;

    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_ENCODE);
    if (!xdr_u_hyper(&xdrs, &value)) 
    { 
        printf("Serialization error");
        return 1;
    }

    // 将编码后的数据打印出来
    for (int i = 0; i < sizeof(buffer); i++) {
        printf("%02x ", buffer[i]);
    }
    printf("\n");

    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_DECODE);
    if (!xdr_u_hyper(&xdrs, &value)) 
    { 
        printf("Deserialization error");
        return 1;
    }

    printf("%llu\n", value); // 打印解码后的值

    return 0;
}

在上面的示例代码中,

  • 首先,我们定义了一个 64 位无符号整数变量 value 并给它赋值 12345678901234567890ULL;
  • 然后,使用 xdrmem_create() 函数创建了一个 XDR 流对象 xdrs,并指定流的编码方式为 XDR_ENCODE
  • 接着,调用 xdr_u_hyper() 函数进行编码操作;如果编码成功,则将编码后的数据打印出来;
  • 再然后,再次调用 xdrmem_create() 函数创建一个 XDR 流对象 xdrs 并指定流的编码方式为 XDR_DECODE
  • 再接着,调用 xdr_u_hyper() 函数对编码后的数据进行解码,并将结果存储到变量 value 中;
  • 最后,输出解码后的值。

4. xdr_u_int

4.1 函数说明

函数声明 函数功能
bool_t xdr_u_int(XDR *xdrs, u_int *a); 用于编码或解码无符号整数

参数:

  • xdrs : 指向要编码或解码数据的 XDR 结构体的指针
  • a : 指向要编码或解码的无符号整数的指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

4.2 演示示例

#include <stdio.h>
#include <rpc/xdr.h>

int main(void) 
{
    // 将无符号整数编码为 XDR 格式字节流
    unsigned int num = 123456789;
    XDR xdr;
    char buf[4];
    xdrmem_create(&xdr, buf, sizeof(buf), XDR_ENCODE);
    if (!xdr_u_int(&xdr, &num)) 
    {
        printf("Failed to encode unsigned int.\n");
        return 1;
    }
    printf("Encoded bytes: %02x %02x %02x %02x\n", buf[0], buf[1], buf[2], buf[3]);

    // 从 XDR 格式字节流中解码无符号整数
    unsigned int decoded_num;
    XDR xdr2;
    xdrmem_create(&xdr2, buf, sizeof(buf), XDR_DECODE);
    if (!xdr_u_int(&xdr2, &decoded_num)) 
    {
        printf("Failed to decode unsigned int.\n");
        return 1;
    }
    printf("Decoded number: %u\n", decoded_num);

    return 0;
}

在上面的这个示例程序中,

  • 首先,我们首先创建了一个无符号整数变量 num 并将其设置为 123456789
  • 然后,使用 xdrmem_create() 函数创建了一个 XDR 对象 xdr,并和 buf 绑定;
  • 接着,使用 xdr_u_int() 函数将无符号整数 num 编码为 XDR 格式字节流,并将其写入到缓冲区 buf 中。如果编码过程中出现错误,则输出一条错误消息并返回 1;如果编码成功,则输出编码后的字节流;
  • 再然后,使用 xdrmem_create() 函数创建另一个 XDR 对象 xdr2
  • 再接着,调用xdr_u_int() 函数来解码 XDR 格式字节流中的无符号整数。如果解码过程中出现错误,则输出一条错误消息并返回 1;
  • 最后,解码成功,则输出解码后的无符号整数。

5. xdr_u_long

5.1 函数说明

函数声明 函数功能
bool_t xdr_u_long(XDR *xdrs, u_long *objp); 用于编码或解码无符号长整型值

参数:

  • xdrs : 指向要编码或解码数据的 XDR 结构体的指针
  • objp : 指向要编码或解码的无符号长整型值得指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

5.2 演示示例

#include <stdio.h>
#include <rpc/xdr.h>

int main()
{
    XDR xdr;
    u_long value = 12345;

    // 打开XDR数据流
    xdrmem_create(&xdr, NULL, 0, XDR_ENCODE);

    // 编码无符号长整型值到XDR数据流中
    if (!xdr_u_long(&xdr, &value)) {
        printf("Unable to encode value.\n");
        return 1;
    }

    // 关闭XDR数据流
    xdr_destroy(&xdr);

    return 0;
}

6. xdr_u_short

6.1 函数说明

函数声明 函数功能
bool_t xdr_u_short(XDR *xdrs, unsigned short *objp); 用于编码或解码无符号短整型数据

参数:

  • xdrs : 指向要编码或解码数据的 XDR 结构体的指针
  • objp : 指向 无符号短整型的指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

6.2 演示示例

#include <stdio.h>
#include <rpc/rpc.h>

#define ARRAY_SIZE 3

int main(void) 
{
    XDR xdrs;
    char buffer[1024];
    unsigned short source_array[ARRAY_SIZE] = {1, 2, 3};
    unsigned short dest_array[ARRAY_SIZE];

    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_ENCODE);
    for (int i = 0; i < ARRAY_SIZE; ++i) 
    {
        if (!xdr_u_short(&xdrs, &source_array[i])) 
        {
            printf("编码失败\n");
            return 1;
        }
    }
    xdr_destroy(&xdrs);
    printf("编码结果:\n");
    for (int i = 0; i < xdr_getpos(&xdrs); ++i) 
    {
        printf("%02X ", buffer[i]);
    }
    printf("\n");

    xdrmem_create(&xdrs, buffer, sizeof(buffer), XDR_DECODE);
    for (int i = 0; i < ARRAY_SIZE; ++i) 
    {
        if (!xdr_u_short(&xdrs, &dest_array[i])) 
        {
            printf("解码失败\n");
            return 1;
        }
    }
    xdr_destroy(&xdrs);
    printf("解码结果:\n");
    for (int i = 0; i < ARRAY_SIZE; ++i) 
    {
        printf("%u ", dest_array[i]);
    }
    printf("\n");

    return 0;
}

7. xdr_vector

7.1 函数说明

函数声明 函数功能
bool_t xdr_short(XDR *xdrs, short *sp); 用于编码或解码一个可变长度的向量

参数:

  • xdrs : 指向要编码或解码数据的 XDR 结构体的指针
  • sp : 指向要编码或解码的 short 类型数据的指针

返回值:

  • 如果编码或解码成功,则返回值为 TRUE
  • 否则返回值为 FALSE

7.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <rpc/types.h>
#include <rpc/xdr.h>

#define MAXSIZE 100

void error(char *s) 
{
    fprintf(stderr, "error: %s\n", s);
    exit(1);
}

int main() 
{
    XDR xdrs;
    char buffer[MAXSIZE];
    int values[] = {1, 2, 3, 4, 5};
    u_int size = sizeof(values)/sizeof(int);

    xdrmem_create(&xdrs, buffer, MAXSIZE, XDR_ENCODE);
    if (!xdr_vector(&xdrs, (char *) values, &size, MAXSIZE, sizeof(int), (xdrproc_t) xdr_int)) 
    {
        error("serialization failed");
    }

    xdrmem_create(&xdrs, buffer, MAXSIZE, XDR_DECODE);
    if (!xdr_vector(&xdrs, (char *) values, &size, MAXSIZE, sizeof(int), (xdrproc_t) xdr_int)) 
    {
        error("deserialization failed");
    }

    for (int i = 0; i < size; i++) 
    {
        printf("%d ", values[i]);
    }
    printf("\n");

    return 0;
}

8. xdr_void

8.1 函数说明

函数声明 函数功能
bool_t xdr_void(void); 用于编码或解码空值【void类型】

返回值:
因为无任何值被编码或解码,所以总是返回 true

8.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <rpc/rpc.h>

int main() 
{
    // 创建一个 xdr_void 数据结构
    XDR xdr;
    xdrmem_create(&xdr, NULL, 0, XDR_ENCODE);

    // 将空值序列化为 xdr_void 类型
    if (!xdr_void(&xdr, NULL))
    {
        fprintf(stderr, "序列化失败\n");
        exit(1);
    }

    // 打印序列化后的结果
    printf("序列化结果:\n");
    int i;
    for (i = 0; i < xdr_getpos(&xdr); i++) {
        printf("%02x ", ((unsigned char *)xdr_inline(&xdr, i))[0]);
    }
    printf("\n");

    // 反序列化 xdr_void 类型
    xdr_destroy(&xdr);
    xdrmem_create(&xdr, xdr_getpos(&xdr), xdr_getpos(&xdr), XDR_DECODE);

    // 尝试反序列化非空的数据到 xdr_void 类型,预期将会失败
    char data[] = {0x01};
    if (xdr_bytes(&xdr, &data, &i, sizeof(data)) != FALSE) {
        fprintf(stderr, "尝试反序列化非空数据到 xdr_void 类型,但成功了\n");
        exit(1);
    }

    // 打印反序列化结果
    printf("反序列化结果:空值\n");

    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言函数大全-- x 开头的函数(4) 的相关文章

  • C语言函数大全-- w 开头的函数(1)

    w 开头的函数 1 1 wcscat 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 wcschr 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 wcscmp 3 1 函数说明 3 2 演示示例 3 3 运行结果 4
  • C语言函数大全-- _w 开头的函数(4)

    w 开头的函数 4 1 wstrtime 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 wstrtime s 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 wsetlocale 3 1 函数说明 3 2 演示示例 3
  • C语言函数大全-- x 开头的函数(3)

    x 开头的函数 3 1 xdr opaque 1 1 函数说明 1 2 演示示例 2 xdr opaque auth 2 1 函数说明 2 2 演示示例 2 2 1 opaque auth 2 2 2 test c 3 xdr pointe
  • C语言函数大全-- p 开头的函数

    p 开头的函数 1 perror 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 pieslice 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 pow powf powl 3 1 函数说明 3 2 演示示例 3 3
  • C语言函数大全-- l 开头的 Linux 内核函数(链表管理函数)

    l 开头的 Linux 内核函数 链表管理函数 1 list add list add tail 1 1 函数说明 1 2 演示示例 2 list cut before list cut position 2 1 函数说明 2 2 演示示例
  • C语言函数大全-- s 开头的函数(3)

    s 开头的函数 3 1 sleep 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 sopen 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 sound 3 1 函数说明 3 2 演示示例 4 spawnl 4 1 函
  • C语言函数大全-- s 开头的函数(2)

    s 开头的函数 2 1 setlinestyle 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 setmem 2 1 函数说明 2 2 演示示例 3 setmode 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 se
  • C语言函数大全-- z 开头的函数

    z 开头的函数 1 zalloc 1 1 函数说明 1 2 演示示例 2 zcalloc 2 1 函数说明 2 2 演示示例 3 zcfree 3 1 函数说明 3 2 演示示例 4 zclearerr 4 1 函数说明 4 2 演示示例
  • C语言函数大全-- x 开头的函数(5)

    x 开头的函数 5 1 xdrmem create 1 1 函数说明 1 2 演示示例 2 xdrmem destroy 2 1 函数说明 2 2 演示示例 3 xdrrec create 3 1 函数说明 3 2 演示示例 4 xdrre
  • C语言函数大全-- u 开头的函数

    u 开头的函数 1 ultoa 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 ungetc 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 ungetch 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 un
  • C语言函数大全-- t 开头的函数

    t 开头的函数 1 tan tanf tanl 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 tanh tanhf tanhl 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 tell 3 1 函数说明 3 2 演示示
  • C语言函数大全--e开头的函数

    e开头的函数 1 ecvt 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 ellipse 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 eof 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 execl 4
  • C语言函数大全--h开头的函数

    h开头的函数或宏 1 hypot hypotf hypotl 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 HUGE VAL HUGE VALF HUGE VALL 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 ha
  • C语言函数大全-- x 开头的函数(1)

    x 开头的函数 1 1 xdr accepted reply 1 1 函数说明 1 2 演示示例 1 2 1 accepted reply 1 2 2 Test c 2 xdr array 2 1 函数说明 2 2 演示示例 3 xdr a
  • C语言函数大全-- r 开头的函数

    r 开头的函数 1 raise 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 rand 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 read 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 realloc
  • C语言函数大全-- y 开头的函数

    y 开头的函数 1 yperror 1 1 函数说明 1 2 演示示例 2 yp match 2 1 函数说明 2 2 演示示例 3 y0 零阶第二类贝塞尔函数 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 y1 一阶第二类贝塞
  • C语言函数大全--f开头的函数(下)

    f开头的函数 下 21 floor floorf floorl 21 1 函数说明 21 2 演示示例 21 3 运行结果 22 flushall 22 1 函数说明 22 2 演示示例 22 3 运行结果 23 fma fmaf fmal
  • C语言函数大全-- i 开头的函数

    i 开头的函数 1 imagesize 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 initgraph 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 inport 3 1 函数说明 3 2 演示示例 4 insli
  • C语言函数大全-- s 开头的函数(4)

    s 开头的函数 4 1 strdup 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 stricmp 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 strerror 3 1 函数说明 3 2 演示示例 3 3 运行结果
  • C语言函数大全-- x 开头的函数(4)

    x 开头的函数 4 1 xdr struct 1 1 函数说明 1 2 演示示例 2 xdr u char 2 1 函数说明 2 2 演示示例 3 xdr u hyper 3 1 函数说明 3 2 演示示例 4 xdr u int 4 1

随机推荐

  • 使用Mask-RCNN在实例分割应用中克服过拟合

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 Kayo Yin 编译 ronghuaiyang 导读 只使用1349张图像训练Mask RCNN 有代码 代码 https github com kayoyin tiny in
  • 【react】回调函数形式的ref

    回调函数有3个特点 是我定义的函数 我没有调用这个函数 在我没有调用的情况下这个函数自己执行了 ref绑定一个箭头函数作为回调函数 可以输出以下这段看下 ref绑定的箭头函数是会自己执行的 class Demo extends React
  • 关于运发的知识点123(个人笔记 持续更新)

    前言 作为一个物联网的小辣鸡 硬件设计水平不能说没有 只能说一点点 正好要做新项目 自己学着去处理信号 滤波 在这里做一点笔记 参考书一 杨建国老师 新概念模拟电路 pdf 参考书二 单电源运放图集 pdf 原版 翻译中文版 注 想要的自己
  • redis配置 -详情-redis.config

    Redis config 启动的时候 就通过配置文件来启动 单位 配置文件 unit单位 对大小写不敏感 不区分大小写 INCLUDES 包含 include path to local conf include path to other
  • 加糖的CRM---开源项目Sugar CRM中文化安装过程

    目前CRM满天飞 一直也没什么兴趣 好象从几百万美刀到几百块的都有 这次试了试安装Sugar CRM 把安装过程梳理了一下 记下来 以下在环境为windows XP sp2 IIS5 1 MYSQL4 18 PHP5 0下安装成功 首先是要
  • 如何修改NuGet默认全局包文件夹的位置?

    由于一些历史原因 重装系统成为Windows用户解决疑难杂症的祖传手艺 受此影响 给硬盘分区几乎成为了一种执念 少则C D两个盘 夸张一点的5 6个盘的也不是没有 PS macOS和Linux一直都不鼓励给磁盘分区 虽然不禁止但也不提倡 随
  • webpack基础配置

    webpack基础配置 关键字记录 module exports require entry main mode development production output filename path publicPath devServe
  • Git高级之配置多个SSH key

    最近我们在代码托管平台上使用SSH的方式下拉代码 通常是用一个ssh key来拉取所有托管平台的代码 如码云 GitHub GitLab等 但是总用一个不是太好 会有安全风险 这就需要为每个托管平台设置单独的SSH key 下面我们下简单介
  • tensorRT-lenet C++代码分析【附代码】

    前面的文章中已经写了一个tensorRT简单的demo lenet推理 tensorRT lenet 实现了从torch模型转wts 同时也展示出了wts内网络的详细信息 再转engine后的推理过程 本文章是在之前的基础上去分析C 代码的
  • 约瑟夫环生死小游戏-报数下船

    30 个人在一条船上 超载 需要 15 人下船 于是人们排成一队 排队的位置即为他们的编号 报数 从 1 开始 数到 9 的人下船 如此循环 直到船上仅剩 15 人为止 问都有哪些编号的人下船了呢 totalNumber 30 总共人数 n
  • 【网络】传输层-UDP协议

    文章目录 UDP报文格式 UDP协议特性 无连接 不可靠 面向数据报 UDP缓冲区 UDP特性对于编程的影响 基于UDP的应用层协议 netstat工具 pidof命令 UDP报文格式 查看Linux系统下的 usr include net
  • 使用opencv实现简单的人脸识别

    一 opencv模块的使用 1 简介 opencv python是一个python绑定库 旨在解决计算机视觉问题 使用opencv模块 可以实现一些对图片和视频的操作 2 安装 安装opencv之前需要先安装numpy matplotlib
  • kubernetes RC 与 Deployment ,Pod,Horizontal Pod Autoscaling ,replica set资源

    Pod Pod是 kubernetes 的最基本的操作单元 包含一个或多个紧密相关的容器 kubernetes 使用pod在容器之上再封装一层 其一个很重要的原因是 docker容器之间的通信受到docker网络机制的限制 在docker中
  • 华为OD机试真题- Linux发行版的数量【2023Q1】【JAVA、Python、C++】

    题目描述 Linux操作系统有多个发行版 distrowatch com提供了各个发行版的资料 这些发行版互相存在关联 例如Ubuntu基于Debian开发 而Mint又基于Ubuntu开发 那么我们认为Mint同Debian也存在关联 发
  • C++11新特性:四种类型转换cast说明

    目录 引言 1 static cast 1 1 基本类型转换 1 2 类的上行转换 安全 1 3 类的下行转换 不安全 2 const cast 2 1 改变常量属性 3 dynamic cast 3 1 类的上行转换 安全 3 2 类的下
  • <Linux开发>驱动开发 -之- Linux LCD 驱动

    Linux开发 驱动开发 之 Linux LCD 驱动 交叉编译环境搭建 Linux开发 linux开发工具 之 交叉编译环境搭建 uboot移植可参考以下 Linux开发 之 系统移植 uboot移植过程详细记录 第一部分 Linux开发
  • 碎碎念之工作②

  • [Transformer] PVT系列:PVT & CPVT & Twins

    PVT Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convolutions 论文 https arxiv org abs 210
  • Windows环境下使用GTK

    一 前言 维基百科 GTK 原名GTK 最初是GIMP的专用开发库 GIMP Toolkit 后来发展为Unix like系统下开发图形界面的应用程序的主流开发工具之一 GTK是自由软件 并且是GNU计划的一部分 自2019年2月6日起 G
  • C语言函数大全-- x 开头的函数(4)

    x 开头的函数 4 1 xdr struct 1 1 函数说明 1 2 演示示例 2 xdr u char 2 1 函数说明 2 2 演示示例 3 xdr u hyper 3 1 函数说明 3 2 演示示例 4 xdr u int 4 1