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

news2024/11/28 2:42:02

C语言函数大全

本篇介绍C语言函数大全-- s 开头的函数(1)

1. sbrk

1.1 函数说明

函数声明函数功能
void *sbrk(intptr_t increment);它是一个 Unix 系统的函数,用于调整程序的堆空间。

参数:

  • increment : 增加的堆空间的大小

返回值:

  • 如果调用成功,返回值即为增加空间前的原始堆顶指针;
  • 如果出错,则返回 (void *)-1

1.2 演示示例

#include <unistd.h>
#include <stdio.h>

int main() {
    void *mem = sbrk(64);

    if (mem == (void *)-1) {
        perror("sbrk");
        return 1;
    }

    printf("Allocated 64 bytes at address %p\n", mem);

    return 0;
}

在上述示例中,

  • 首先调用 sbrk() 函数将堆顶位置向上移动 64 字节;
  • 然后将返回的指针保存在变量 mem 中;如果 sbrk 调用失败(即返回值等于 (void *)-1),则程序通过 perror() 函数输出错误信息并返回 1
  • 最后,程序打印出分配的内存地址,并返回 0 表示程序成功运行。

2. scalb,scalbf,scalbl

2.1 函数说明

函数声明函数功能
double scalb(double x, double n);计算 x 乘以 2 的 n 次幂(double)
float scalbf(float x, float n);计算 x 乘以 2 的 n 次幂(float)
long double scalbl(long double x, double n);计算 x 乘以 2 的 n 次幂(long double)

注意:如果 n 超过了可表示的范围,或者结果溢出,则函数可能返回正无穷大、负无穷大或 NaN

2.2 演示示例

#include <stdio.h>
#include <math.h>

int main() {
    double x = 3.14159265359;
    double y = scalb(x, 10);

    printf("Before: %lf\n", x);
    printf("After: %lf\n", y);

    return 0;
}

3. scalbln,scalblnf,scalblnl

3.1 函数说明

函数声明函数功能
double scalbln(double x, long int n);计算 x 乘以 2 的指定长整数 n 次幂(double)
float scalblnf(float x, long int n);计算 x 乘以 2 的指定长整数 n 次幂(float)
long double scalblnl(long double x, long int n);计算 x 乘以 2 的指定长整数 n 次幂(long double)

参数:

3.2 演示示例

#include <stdio.h>
#include <math.h>

int main() {
    double x = 1.5;
    float y = 2.25f;
    long double z = 3.75l;
    long int n = 3;
    // 将x乘以2的3次幂
    double result = scalbln(x, n);
    printf("scalbln(%lf, %ld) = %lf\n", x, n, result);

    float resultf = scalblnf(y, n);
    printf("scalblnf(%f, %ld) = %f\n", y, n, resultf);

    long double resultL = scalblnl(z, n);
    printf("scalblnl(%Lf, %ld) = %Lf", z, n, resultL);

    return 0;
}

3.3 运行结果

在这里插入图片描述

4. scalbn,scalbnf,scalbnl

4.1 函数说明

函数声明函数功能
double scalbn(double x, int n);计算 x 乘以 2 的指定整数 n 次幂(double)
float scalbnf(float x, int n);计算 x 乘以 2 的指定整数 n 次幂(float)
long double scalbnl(long double x, int n);计算 x 乘以 2 的指定整数 n 次幂(long double)

4.2 演示示例

#include <stdio.h>
#include <math.h>

int main()
{
    double x = 3.1415926;
    float y = 3.1415926f;
    long double z = 3.1415926L;
    int n = 5;

    printf("scalbn(%lf, %d) = %.20lf\n", x, n, scalbn(x, n));
    printf("scalbnf(%f, %d) = %.20f\n", y, n, scalbnf(y, n));
    printf("scalbnl(%Lf, %d) = %.20Lf\n", z, n, scalbnl(z, n));

    return 0;
}

4.3 运行结果

在这里插入图片描述

5. scanf

5.1 函数说明

函数声明函数功能
int scanf(const char *format, ...);从标准输入中读取指定格式的数据

详细内容 可参考 《scanf》

5.2 演示示例

#include <stdio.h>
#include <math.h>

int main()
{
    char name[20];

    scanf("%s", name);

    printf("Welcome, %s", name);

    return 0;
}

在上述示例中,实现了从标准输入中读取一个字符串,并输出欢迎消息。

  • 我们首先定义一个名为 name 的字符数组,长度为 20;
  • 然后使用 scanf() 函数从标准输入中读取一个字符串,存储到 name 数组中;
  • 最后使用 printf() 函数输出欢迎消息,其中 %s 表示字符串格式化符号,会被 name 所代替。

5.3 运行结果

在这里插入图片描述

6. sector

6.1 函数说明

函数声明函数功能
void sector( int x, int y, int stangle, int endangle, int xradius, int yradius );画并填充椭圆扇区(Windows BGI)

参数:

  • x : 扇形的圆心坐标的 x 轴
  • y : 扇形的圆心坐标的 y 轴
  • stangle : 起始角度(以度数为单位)
  • endangle : 结束角度(以度数为单位)
  • xradius : 横向半径
  • yradius : 纵向半径

6.2 演示示例

#include <graphics.h>

int main(void)
{
   int gdriver = DETECT, gmode;
   int midx, midy, i;
   int stangle = 45, endangle = 135;
   int xrad = 100, yrad = 50;

   initgraph(&gdriver, &gmode, "");

   midx = getmaxx() / 2;
   midy = getmaxy() / 2;

   for (i=EMPTY_FILL; i<USER_FILL; i++)
   {
      setfillstyle(i, getmaxcolor());

      sector(midx, midy, stangle, endangle, xrad, yrad);

      getch();
   }

   closegraph();
   return 0;
}

6.3 运行结果

在这里插入图片描述

7. segread

7.1 函数说明

函数声明函数功能
void segread(struct SREGS *sregs);它是一个 DOS 函数,用于从内存段(segment)中读取内容。

7.2 演示示例

#include <dos.h>
#include <stdio.h>

int main() {
    struct SREGS regs;
    segread(&regs);  // 读取段寄存器的值
    printf("Data segment: %04X\n", regs.ds);
    printf("Code segment: %04X\n", regs.cs);
    printf("Stack segment: %04X\n", regs.ss);
    return 0;
}

上述的这个示例程序,使用了 <dos.h> 头文件中的 segread() 函数和 struct SREGS 结构体,并打印出数据段(DS)、代码段(CS)和堆栈段(SS)的值。

8. setactivepage

8.1 函数说明

函数声明函数功能
void setactivepage(int pagenum);用于切换当前显示的页面

8.2 演示示例

#include <graphics.h>

int main(void)
{
   int gdriver = EGA, gmode = EGAHI;
   int x, y, ht;

   initgraph(&gdriver, &gmode, "");

   x = getmaxx() / 2;
   y = getmaxy() / 2;
   ht = textheight("W");

   setactivepage(1);

   line(0, 0, getmaxx(), getmaxy());

   settextjustify(CENTER_TEXT, CENTER_TEXT);
   outtextxy(x, y, "This is page #1:");
   outtextxy(x, y+ht, "Press any key to halt:");

   setactivepage(0);

   outtextxy(x, y, "This is page #0.");
   outtextxy(x, y+ht, "Press any key to view page #1:");
   getch();

   setvisualpage(1);

   getch();
   closegraph();
   return 0;
}

上述示例将在屏幕上绘制两个页面,并允许用户通过按任意键查看第二个页面。

8.3 运行结果

在这里插入图片描述

9. setallpallette

9.1 函数说明

函数声明函数功能
void setallpalette(struct palettetype *palette);用于设置图形界面的整个调色板

参数:

  • palette : 调色版结构体

9.2 演示示例

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
    int gdriver = DETECT, gmode;
    struct palettetype pal, copypal;
    int color, ht;
    int y = 10;
    char msg[80];

    initgraph(&gdriver, &gmode, "");

    ht = 2 * textheight("W");

    getpalette(&pal);

    for (color = 1; color <= MAXCOLORS; color++)
    {
        sprintf(msg, "old colors[%d]: %d", color, pal.colors[color]);
        outtextxy(1, y, msg);
        y += ht;
    }

    for (color = 1; color <= MAXCOLORS; color++)
    {
        setpalette(color, BLACK);
    }

    getpalette(&copypal);

    getch();

    y = 10;
    for (color = 1; color <= MAXCOLORS; color++)
    {
        sprintf(msg, "new colors[%d]: %d", color, copypal.colors[color]);
        outtextxy(150, y, msg);
        y += ht;
    }

    getch();
    // 重置调色板
    setallpalette(&pal);

    getpalette(&pal);

    y = 10;
    for (color = 1; color <= MAXCOLORS; color++)
    {
        sprintf(msg, "old colors[%d]: %d", color, pal.colors[color]);
        outtextxy(300, y, msg);
        y += ht;
    }

    getch();
    closegraph();
    return 0;
}

9.3 运行结果

在这里插入图片描述

10. setaspectratio

10.1 函数说明

函数声明函数功能
void setaspectratio( int xasp, int yasp );设置图形纵横比

参数:

  • xasp : 水平缩放比例
  • yasp : 垂直缩放比例

10.2 演示示例

#include <graphics.h>

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    // 设置水平和垂直缩放比例为 2:1
    setaspectratio(2, 1);

    // 在图形窗口中绘制一个正方形
    rectangle(100, 100, 200, 200);

    getch();
    closegraph();
    return 0;
}

注意: 因为 BGI 图形库在 Windows 上的实现是基于 Win32 API 的简单封装,并且没有提供缩放功能,所以上述程序在 Windows BGI 下不支持缩放功能,也就是 setaspectratio 没有效果。

11. setbkcolor

11.1 函数说明

函数声明函数功能
void setbkcolor(int color);用于设置当前绘图窗口的背景色

参数:

11.2 演示示例

#include <graphics.h>

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    // 设置背景色为蓝色
    setbkcolor(BLUE);

    // 清除先前绘制的图形
    cleardevice();

    // 在图形窗口中绘制一条线段
    line(100, 100, 200, 200);

    getch();
    closegraph();
    return 0;
}

注意: 在修改背景颜色后,需要使用 cleardevice() 函数清除先前绘制的图形并更新背景颜色,不然背景颜色的修改不会生效。

11.3 运行结果

在这里插入图片描述

12. setbuf

12.1 函数说明

函数声明函数功能
void setbuf(FILE *stream, char *buffer);用于设置标准输入流、标准输出流或标准错误流的缓冲方式

参数:

12.2 演示示例

#include <stdio.h>

int main()
{
    FILE *fp;

    // 打开文件,并设置为不带缓冲
    fp = fopen("test.txt","w");
    setbuf(fp, NULL);

    // 写入数据到文件中
    fprintf(fp, "This is a line of text.");

    // 关闭文件
    fclose(fp);

    return 0;
}

在上述这个示例程序中,我们打开了一个名为 test.txt 的文件,并使用 setbuf() 函数将其设置为不带缓冲。然后,我们向文件中写入一行文本,关闭文件并退出程序。

由于我们已经将文件设置为不带缓冲,因此写入的数据将直接写入磁盘,而不会在内存中留下缓冲区。

12.3 运行结果

在这里插入图片描述

13. setcolor

13.1 函数说明

函数声明函数功能
void setcolor(int color);

参数:

  • color : 要设置的颜色,预定义颜色有如下:
    BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE

13.2 演示示

#include <graphics.h>

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    setbkcolor(WHITE);

    cleardevice();

    // 设置绘画颜色为红色
    setcolor(RED);

    // 在图形窗口中绘制一条直线
    line(100, 100, 200, 200);

    getch();
    closegraph();
    return 0;
}

13.3 运行结果

在这里插入图片描述

14. setfillpattern

14.1 函数说明

函数声明函数功能
void setfillpattern(char *upattern, int color);用于设置当前绘图窗口的填充图案

参数:

  • upattern : 填充图案
  • color : 填充颜色

在调用 setfillpattern() 函数之前,需要先定义一个名为 upattern 的字符数组,并将其用作填充图案。这个图案通常使用一个 8 字节的字节数组表示,每个元素包含一个 8 比特位的掩码,用于表示该位置是否应该被绘制斜线或其他样式。

14.2 演示示例

#include <graphics.h>

int main(void)
{
    int gdriver = DETECT, gmode;
    int maxx, maxy;

    char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x24, 0x24, 0x07, 0x00};

    // 初始化图形模式
    initgraph(&gdriver, &gmode, "");

    // 获取屏幕的最大 X 和 Y 坐标
    maxx = getmaxx();
    maxy = getmaxy();

    // 设置当前颜色为最大颜色值
    setcolor(getmaxcolor());

    // 设置填充图案
    setfillpattern(pattern, getmaxcolor());

    // 用填充图案填满整个窗口
    bar(0, 0, maxx, maxy);

    // 等待用户按下任意键后关闭窗口
    getch();
    closegraph();

    return 0;
}

上述程序使用了 Windows BGI 图形库来创建一个空白的图形窗口,并在其中填充一种斜线筛子图案。

何为斜线筛子图案,参考如下程序打印:

#include <stdio.h>

int main() {
    char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x24, 0x24, 0x07, 0x00};

    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            if (pattern[i] & (1 << (7 - j))) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}

在这里插入图片描述

14.3 运行结果

在这里插入图片描述

15. setfillstyle

15.1 函数说明

函数声明函数功能
void setfillstyle(int pattern, int color);用于设置当前绘图窗口的填充样式,即用什么颜色或图案来填充绘制的图形

参数:

  • pattern : 填充样式
  • color : 填充颜色

如下是支持的填充样式:
EMPTY_FILL, SOLID_FILL, LINE_FILL, LTSLASH_FILL, SLASH_FILL, BKSLASH_FILL, LTBKSLASH_FILL, HATCH_FILL, XHATCH_FILL, INTERLEAVE_FILL, WIDE_DOT_FILL, CLOSE_DOT_FILL, USER_FILL

setfillstyle() 函数还支持使用用户自定义的填充样式。如果要使用用户自定义的填充样式,需要调用 setuserchars() 函数来设置填充字形,然后将填充样式参数设置为 USER_FILL

15.2 演示示例

#include <graphics.h>

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    // 设置填充样式为斜线筛子图案,颜色为红色
    setfillstyle(SLASH_FILL, RED);

    // 在图形窗口中填充一个矩形
    rectangle(100, 100, 200, 200);
    floodfill(150, 150, getmaxcolor());

    getch();
    closegraph();
    return 0;
}

在上述的示例程序中,

  • 我们首先使用 setfillstyle() 函数将填充样式设置为斜线筛子图案(即 SLASH_FILL 样式),颜色设置为红色。
  • 然后,我们使用 rectangle() 函数在图形窗口中绘制一个矩形,并使用 floodfill() 函数将该矩形填充为红色的斜线筛子图案。
  • 最后按任意键退出图形模式。

15.3 运行结果

在这里插入图片描述

16. setgraphmode

16.1 函数说明

函数声明函数功能
void setgraphmode(int mode);设置当前的图形模式

16.2 演示示例

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int gdriver = DETECT, gmode;
    int x, y;

    initgraph(&gdriver, &gmode, "");

    x = getmaxx() / 2;
    y = getmaxy() / 2;

    settextjustify(CENTER_TEXT, CENTER_TEXT);
    outtextxy(x, y, "Press any key to exit graphics:");
    getch();

    // 将图形模式恢复到文本模式
    restorecrtmode();
    printf("We're now in text mode.\n");
    printf("Press any key to return to graphics mode:");
    getch();

    // 返回图形模式
    setgraphmode(getgraphmode());

    settextjustify(CENTER_TEXT, CENTER_TEXT);
    outtextxy(x, y, "We're back in graphics mode.");
    outtextxy(x, y+textheight("W"), "Press any key to halt:");

    getch();
    closegraph();
    return 0;
}

16.3 运行结果

在这里插入图片描述

17. setjmp

17.1 函数说明

函数声明函数功能
int setjmp(jmp_buf env);用于在程序执行过程中设置跳转点,并将当前程序状态保存到一个缓冲区中。当程序需要从该跳转点继续执行时,可以使用 longjmp() 函数恢复之前保存的程序状态并返回到该跳转点。

参数:

  • env : 要保存程序状态的缓冲区,通常声明为 jmp_buf 类型

返回值:
setjmp() 函数返回 0,除非它是从 longjmp() 函数调用返回的,这种情况下,它返回非零值。

17.2 演示示例

#include <stdio.h>
#include <setjmp.h>

jmp_buf buf;

void foo()
{
    printf("foo() before longjmp()\n");
    longjmp(buf, 1);
    printf("foo() after longjmp()\n");
}

int main()
{
    int ret = setjmp(buf);

    if (ret == 0) {
        printf("main() before foo()\n");
        foo();
    } else {
        printf("main() after longjmp()\n");
    }

    return 0;
}

在上述的示例程序中,

  • 我们首先定义了一个名为 bufjmp_buf 类型的缓冲区,并将其作为参数传递给 setjmp() 函数,当前程序状态将保存到 buf 缓冲区中,并返回一个整形,用 ret 变量存储;此时 ret 的值为 0,则说明是第一次调用 setjmp() 函数,主函数内打印输出 ”main() before foo()“
  • 然后我们调用 foo() 函数,打印输出 ”foo() before longjmp()“
  • 接着调用 longjmp() 函数,将会返回到 setjmp() 函数调用的位置,并传递了一个值 1。因为 longjmp() 调用一定会返回 setjmp() 函数调用的位置,因此 foo() 函数的后面一行代码永远不会被执行。
  • 最后 setjmp() 函数返回 ret 的值为 1,则说明是从 longjmp() 函数中返回的,主函数内打印输出 ”main() after longjmp()“

17.3 运行结果

在这里插入图片描述

参考

  1. [API Reference Document]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/474661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习算法系列(五)-- 支持向量机(SVM)

机器学习算法系列之–支持向量机&#xff08;揭开SVM的神秘面纱&#xff09; 支持向量机&#xff08;Support Vector Machine &#xff1a;SVM&#xff09;&#xff1a;二分类算法模型&#xff0c;数据集较小时&#xff0c;分类效果甚至优于神经网络。 其最大的特点在于&#x…

C++ muduo日志库的使用

muduo日志库的使用 一、引用二、使用方法2.1、引入头文件2.2、 启动日志库2.3、记录日志2.4、输出格式2.5、日志滚动 三、总结 一、引用 muduo是一个高性能的网络库&#xff0c;它的日志库采用了异步、多线程的方式来记录日志&#xff0c;其主要特点包括&#xff1a; 能够按大…

使用Pano2VR实现全景图切换和平面图效果

内容简介 本文在文章《使用Pano2VR实现背景音乐、放大/缩小、旋转、缩略图和直线/立体/鱼眼模式等》基础上&#xff0c;增加全景图切换和平面图效果&#xff1b;效果如下图&#xff08;为了可以上传缩小屏幕&#xff0c;属于PC端运行&#xff09;&#xff1a; 实现过程 1. 运行…

【Bus】编写一个Demo虚拟的总线-设备-驱动模型

文章目录 1. 前言2. 总线驱动模型三要素2.1 总线2.2 设备2.3 驱动 3. Demo Code3.1 virt_bus_core.c3.2 virt_device.c3.3 virt_driver.c 4. 工程代码下载地址5. 参考资料 1. 前言 Linux平台为了驱动的可重用性&#xff0c;虚拟了很多的虚拟总线。很经典的就是platform总线&am…

Android Room数据库如何使用增删改查

先看运行效果图。 1.在app下的build.gradle。在dependencies{}闭包中添加如下依赖 //roomdef room_version "2.3.0"implementation "androidx.room:room-runtime:$room_version"annotationProcessor "androidx.room:room-compiler:$room_version&q…

爱奇艺DRM修炼之路

01 DRM的定义和作用 DRM&#xff0c;即数字版权管理&#xff08;digital rights management&#xff09;&#xff0c;是在数字内容交易过程中&#xff0c;对知识产权进行保护的技术、工具和处理过程。它的目的是防止数字内容被未经授权的用户复制、修改和分发&#xff0c;以保护…

解读TaskMatrix.AI

ChatGPT在广泛的开放域任务上展现出令人瞩目的强大对话、上下文学习和代码生成能力&#xff0c;而且它所获得的常识知识还可以为特定领域的任务生成高级解决方案概要。不过&#xff0c;除了更强大的学习、理解和生成能力&#xff0c;ChatGPT还有哪些问题需要解决呢&#xff1f;…

《利用光体积描记图信号的模糊递推特性估计无袖带血压的级联卷积神经网络模型》阅读笔记

目录 一、论文摘要 二、论文十问 Q1&#xff1a;论文试图解决什么问题&#xff1f; Q2&#xff1a;这是否是一个新的问题&#xff1f; Q3&#xff1a;这篇文章要验证一个什么科学假设&#xff1f; Q4&#xff1a;有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一…

城市的智能进化,汇成数字中国的璀璨银河

著名城市规划理论家刘易斯芒福德在《城市发展史——起源、演变和前景》中提出&#xff0c;“城市从其起源时代开始便是一种特殊的构造&#xff0c;它专门用来储存并流传人类文明的成果。这种构造致密而紧凑&#xff0c;足以用最小的空间容纳更多的设施。” 他认为&#xff0c;城…

我们如何将 Amazon Snowcone 送入轨道

我从 4 或 5 岁起就一直是太空旅行和美国太空计划的粉丝。我记得读过关于水星和双子星座计划的文章&#xff0c;兴奋地看着鹰号登月舱降落在月球上。 如今&#xff0c;随着每次发射到达近地轨道 (LEO) 的成本似乎都在不断下降&#xff0c;因此有比以往任何时候都要更多的机会&…

建设元宇宙基础设施——PPIO边缘云在云渲染/云游戏的思考和实践

关于“元宇宙”的讨论越发火热&#xff0c;而建设元宇宙不可避免需要布设基础设施&#xff0c;LiveVideoStackCon 2022 北京站邀请到PPIO边缘云联合创始人——王闻宇&#xff0c;同大家探讨元宇宙网络时延的最优解–边缘云基础设施的架构与建设&#xff0c;并介绍PPIO边缘云在泛…

Kafka Broker是如何基于Reactor模式来处理海量用户请求的?

介绍 https://kafka.apache.org/0110/documentation.html 参数名描述默认值queued.max.requestsbroker全局唯一的请求队列&#xff0c;用来保存请求500num.io.threads用来处理请求的线程数8 参考博客 [1]

Python环境设置

在了解Python语言的历史和介绍之后&#xff0c;要想开始学习Python语言&#xff0c;还需要在计算机中安装Python编译环境&#xff0c;本期就来聊聊怎么在计算机中安装Python环境。 在计算机中添加Python环境的几种选择&#xff1a; 直接安装Python程序&#xff0c;即Python官…

Spring Boot配置文件

日升时奋斗&#xff0c;日落时自省 目录 1、配置文件作用 2、配置文件格式 2.1、使用注意 3、properties配置文件 3.1、注释中文问题 3.2、properties语法格式 3.3、读取配置文件 3.3.1、Value读取 3.3.2、PropertySource读取 3.3.3、原生方式读取配置文件 3.4、pr…

C++-FFmpeg-1-VS2019-x264-fdk_aac-x265-pdb-QT5.14-makefile

1.环境搭建&#xff1a; 1.1VS2019 用的是控制台编译。 1.2.msys2 模拟linux的命令和指令。 2.源码编译与安装&#xff1a; 2.1.x264: ffmpeg :编码用X264 2.2x265: ffmpeg :编码用X265 c写的。msys2编译。 2.3.fdk-aac 音频编码。 2.4 ffmpeg源码4.3: 2.5.SDL2.0 视频渲…

ESP8266_RTOS_SDK之SPIFFS

需要在ESP8266的FLASH中存储一些可变参数&#xff0c;有两种方式&#xff0c;一种是调用SPI Flash API直接指定地址读写FLASH&#xff1b;二是在SPI FLASH上创建一块SPIFFS 分区&#xff0c;以读写文件的形式存取数据。 下面记录第二种方式&#xff0c;使用SPIFFS文件系统存取…

干货 | Elasticsearch 8.X 性能优化实战

Elasticsearch 是实现用户无缝搜索体验的关键工具。它通过提供快速、准确和相关的搜索结果&#xff0c;彻底改变了用户与应用程序的互动方式。然而&#xff0c;要确保 Elasticsearch 部署达到最佳性能&#xff0c;就必须关注关键指标&#xff0c;并对诸如索引、缓存、查询、搜索…

【计算机图形学】课堂习题汇总

在直线的光栅化算法中&#xff0c;如果不考虑最大位移方向则可能得到怎样的直线&#xff1f; A&#xff1a;斜率为1的线 B&#xff1a;总是垂直的 C&#xff1a;离散的点&#xff0c;无法构成直线 D&#xff1a;总是水平的 在直线的改进的Bresenham算法中&#xff0c;每当误…

Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)

一、前言 上次实现的文件推流&#xff0c;尽管优点很多&#xff0c;但是只能对现在存在的生成好的音视频文件推流&#xff0c;而现在更多的场景是需要将实时的视频流重新推流分发&#xff0c;用户在很多设备比如手机/平板/网页/电脑/服务器上观看&#xff0c;这样就可以很方便…

IP-GUARD如何通过流量控制策略限制客户端下载文件?

如何通过流量控制策略限制客户端下载文件? 可通过流量控制策略限制接收流量上限速度,实现控制客户端下载文件效果。流量控制支持网络地址和端口范围限制。 网络流量统计能否基于用户进行统计? 目前最新的客户端版本已经支持控制应用程序的网络流量,在应用层实现了控制…