C语言函数大全-- _w 开头的函数(5)

C语言函数大全

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

1. _wspawnl

1.1 函数说明

函数声明函数功能
int _wspawnl(int mode, const wchar_t* cmdname, const wchar_t* arglist, ...);启动一个新的进程并运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则将从当前工作目录中查找可执行文件。如果当前工作目录中没有找到该文件,则将失败并返回错误代码。
  • arglist : 可选,传递给子进程的命令行参数字符串。多个参数以空格分隔
  • … : 可选,用于传递命令行参数的可变参数列表,必须以一个 NULL 结尾

1.2 演示示例

1.2.1 SubTest.c
#include <stdio.h>
int main(int argc, char *argv[])
{
	printf("exec %s, Hello, %s", argv[0], argv[1]);
 	return 0;
} 
1.2.2 Test.c
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"SubTest.exe";
    const wchar_t* arglist = L"SubTest.exe huazie";

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnl(mode, cmdname, arglist, NULL);

    // 打印子进程的退出代码
    printf("\nChild process exited with code %d\n", result);

    return 0;
}

注意: 上述示例是一个同步(阻塞)调用。如果你想启动一个异步进程(不等待它结束),则可以将 mode 参数设置为 _P_NOWAIT。在这种情况下,函数会立即返回,父进程不会等待新进程完成。

1.3 运行结果

在这里插入图片描述

2. _wspawnle

2.1 函数说明

函数声明函数功能
int _wspawnle(int mode, const wchar_t* cmdname, const wchar_t* arglist, ... , const wchar_t* envptr[]);启动一个新的进程并通过指定的环境变量传递参数,来运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则将从当前工作目录中查找可执行文件。如果当前工作目录中没有找到该文件,则将失败并返回错误代码。
  • arglist : 可选,传递给子进程的命令行参数字符串。多个参数以空格分隔
  • … : 可选,用于传递命令行参数的可变参数列表,必须以一个 NULL 结尾
  • envptr: 可选,包含所有需要在子进程中使用的环境变量。如果为 NULL,则子进程使用调用进程的当前环境

2.2 演示示例

2.2.1 SubEnvTest.c
#include <process.h>
#include <processenv.h>
#include <stdio.h>

int main(int argc, char *argv[], char **envp)
{
	printf("SubEnvTest Command line arguments:\n");
	for (int i=0; i<argc; i++)
        printf("[%d] : %s\n", i, argv[i]);
	printf("exec %s, Hello, %s\n", argv[0], argv[1]);

	for (int i = 0; envp[i] != NULL; i++)
	{
		printf("%s\n", envp[i]);
	}

	// while(*envp != NULL)
 	//    printf("  %s\n", *(envp++));

 	return 0;
} 
2.2.2 Test.c
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"SubEnvTest.exe";
    const wchar_t* arglist[] = { L"SubEnvTest.exe", L"Huazie", NULL };
    const wchar_t* envptr[] = { L"Hello=world", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnle(mode, cmdname, arglist[0], arglist[1], NULL, envptr);

    // 打印子进程的退出代码
    printf("\nChild process exited with code %d\n", result);

    return 0;
}

2.3 运行结果

在这里插入图片描述

3. _wspawnlp

3.1 函数说明

函数声明函数功能
int _wspawnl(int mode, const wchar_t* cmdname, const wchar_t* arg0, ...);启动一个新的进程并运行指定的可执行文件。它与 _wspawnl 函数类似,但参数列表略有不同

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则会在环境变量 PATH 指定的目录中查找可执行文件
  • arg0 : 可选,第一个命令行参数字符串
  • … : 可选,用于传递命令行参数的可变参数列表,必须以一个 NULL 结尾

3.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"java.exe";
    const wchar_t* arg0 = L"java.exe";
    const wchar_t* arg1 = L"-version";

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnlp(mode, cmdname, arg0, arg1, NULL);

    // 打印子进程的退出代码
    printf("\nChild process exited with code %d\n", result);

    return 0;
}

3.3 运行结果

在这里插入图片描述

4. _wspawnlpe

4.1 函数说明

函数声明函数功能
int _wspawnlpe(int mode, const wchar_t* cmdname, const wchar_t* arg0, ... , const wchar_t* envptr[]);用于启动一个新进程并运行指定的可执行文件。它与 _wspawnle 函数类似,但参数列表略有不同

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则会在环境变量 PATH 指定的目录中查找可执行文件
  • arg0 : 可选,第一个命令行参数字符串
  • … : 可选,用于传递命令行参数的可变参数列表,必须以一个 NULL 结尾
  • envptr: 可选,包含所有需要在子进程中使用的环境变量。如果为 NULL,则子进程使用调用进程的当前环境

4.2 演示示例

4.2.1 SubEnvTest.c

参考 2.2.1 中所示即可,不再赘述

4.2.2 Test.c
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"SubEnvTest.exe";
    const wchar_t* arg0 = L"SubEnvTest.exe";
    const wchar_t* arg1 = L"Huazie";
    const wchar_t* arg2 = L"helloworld";
    const wchar_t* envp[] = { L"key=value", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnlpe(mode, cmdname, arg0, arg1, arg2, NULL, envp);

    // 打印子进程的退出代码
    printf("Child process exited with code %d\n", result);

    return 0;
}

4.3 运行结果

在这里插入图片描述

5. _wspawnv

5.1 函数说明

函数声明函数功能
int _wspawnv(int mode, const wchar_t* cmdname, const wchar_t* const argv[]);用于启动一个新进程并运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则将从当前工作目录中查找可执行文件。如果当前工作目录中没有找到该文件,则将失败并返回错误代码。
  • argv : 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULL

5.2 演示示例

5.2.1 SubTest.c

参考 1.2.1 中所示即可,不再赘述

5.2.2 Test.c
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"SubTest.exe";
    const wchar_t* argv[] = { L"SubTest.exe", L"Huazie", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnv(mode, cmdname, argv);

    // 打印子进程的退出代码
    printf("\nChild process exited with code %d\n", result);

    return 0;
}

5.3 运行结果

在这里插入图片描述

6. _wspawnve

6.1 函数说明

函数声明函数功能
int _wspawnve(int mode, const wchar_t* cmdname, const wchar_t* const argv[], const wchar_t* const envp[]);用于启动一个新进程并运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则将从当前工作目录中查找可执行文件。如果当前工作目录中没有找到该文件,则将失败并返回错误代码。
  • argv : 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULL
  • envp: 可选,包含所有需要在子进程中使用的环境变量。如果为 NULL,则子进程使用调用进程的当前环境

6.2 演示示例

6.2.1 SubEnvTest.c

参考 2.2.1 中所示即可,不再赘述

6.2.2 Test.c
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"SubEnvTest.exe";
    const wchar_t* argv[] = { L"SubEnvTest.exe", L"Huazie", L"helloworld", NULL };
    const wchar_t* envp[] = { L"key=value", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnve(mode, cmdname, argv, envp);

    // 打印子进程的退出代码
    printf("Child process exited with code %d\n", result);

    return 0;
}

6.3 运行结果

在这里插入图片描述

7. _wspawnvp

7.1 函数说明

函数声明函数功能
int _wspawnvp(int mode, const wchar_t* cmdname, const wchar_t* const argv[]);用于启动一个新进程并运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则会在环境变量 PATH 指定的目录中查找可执行文件
  • argv : 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULL

7.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"java.exe";
    const wchar_t* argv[] = { L"java.exe", L"-version", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnvp(mode, cmdname, argv);

    // 打印子进程的退出代码
    printf("\nChild process exited with code %d\n", result);

    return 0;
}

7.3 运行结果

在这里插入图片描述

8. _wspawnvpe

8.1 函数说明

函数声明函数功能
int _wspawnvpe(int mode, const wchar_t* cmdname, const wchar_t* const argv[], const wchar_t* const envp[]);用于启动一个新进程并运行指定的可执行文件

参数:

  • mode : 启动命令的模式,可以是 _P_WAIT_P_NOWAIT 的任意一种:
    • _P_WAIT :等待新进程结束之后才继续执行当前进程
    • _P_NOWAIT :不等待新进程结束,立即返回并继续执行当前进程
  • cmdname : 要执行的可执行文件的名称,可以包含完整路径或者只有文件名。如果只有文件名,则会在环境变量 PATH 指定的目录中查找可执行文件
  • argv : 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULL
  • envp: 可选,包含所有需要在子进程中使用的环境变量。如果为 NULL,则子进程使用调用进程的当前环境

8.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* cmdname = L"java.exe";
    const wchar_t* argv[] = { L"java.exe", L"-version", NULL };
    const wchar_t* envp[] = { L"key=value", NULL };

    // 同步启动新进程,等待子进程完成
    int mode = _P_WAIT;

    // 启动新进程
    int result = _wspawnvpe(mode, cmdname, argv, envp);

    // 打印子进程的退出代码
    printf("Child process exited with code %d\n", result);

    return 0;
}

8.3 运行结果

在这里插入图片描述

9. _wsystem

9.1 函数说明

函数声明函数功能
int _wsystem(const wchar_t* command);用于执行操作系统命令。它会启动一个新进程来执行指定的命令,并等待该进程完成。在命令执行过程中,父进程将会被阻塞。

参数:

  • command: 要执行的命令字符串,可以是一个简单的命令名或者是一个完整的命令行

返回值:

  • 如果命令执行成功,则返回执行命令后的退出代码;
  • 如果命令执行失败,则返回一个负数。

9.2 演示示例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <process.h>

int main()
{
    const wchar_t* command = L"cmd /c copy file1.txt file2.txt";

    // 执行命令
    int result = _wsystem(command);

    // 检查命令是否执行成功
    if (result == -1) {
        wprintf(L"Failed to run command.\n");
        return 1;
    }

    // 打印命令的退出代码
    wprintf(L"Command exited with code %d\n", result);

    return 0;
}

9.3 运行结果

运行前:
在这里插入图片描述
运行后:
在这里插入图片描述

10. _wsearchenv

10.1 函数说明

函数声明函数功能
int _wsearchenv(const wchar_t* file, const wchar_t* envvar, wchar_t* pathname);用于在指定的路径中查找指定的文件名

参数:

  • file : 要查找的文件名
  • envvar: 可选参数,可以用来指定一个环境变量名,该环境变量包含一个路径列表,其中包括要搜索的文件所在的路径。如果未提供环境变量名,则函数将仅搜索当前工作目录。
  • pathname : 存储找到的文件的完整路径的缓冲区。如果找到了文件,则将完整路径复制到这个缓冲区中

返回值:

  • 如果找到了指定的文件,则返回一个非零值
  • 否则返回 0

注意: 该函数会先在当前工作目录中搜索指定的文件名,如果找不到,则按照提供的路径列表逐一搜索,直到找到为止。

10.2 演示示例

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

#define MAX_PATH 200

int main()
{
    const wchar_t* file = L"notepad.exe";
    wchar_t path[MAX_PATH];

    // 在 PATH 环境变量中查找文件
    _wsearchenv(file, L"PATH", path);

    // 打印文件的完整路径
    wprintf(L"Found file at: %ls\n", path);

    return 0;
}

10.3 运行结果

在这里插入图片描述

11. _wsplitpath

11.1 函数说明

函数声明函数功能
void _wsplitpath(const wchar_t* path, wchar_t* drive, wchar_t* dir, wchar_t* fname, wchar_t* ext);用于将路径名分解为其组成部分:驱动器、目录、文件名和扩展名

参数:

  • path : 要分解的路径名
  • drive : 用于存储驱动器号的缓冲区。如果路径名没有驱动器号,则该缓冲区将包含空字符串
  • dir : 用于存储目录部分的缓冲区。如果路径名中不包含目录,则该缓冲区将包含空字符串
  • fname : 用于存储文件名部分的缓冲区。如果路径名中既不包含文件名也不包含扩展名,则该缓冲区将包含空字符串
  • ext : 用于存储扩展名部分的缓冲区。如果路径名中不包含扩展名,则该缓冲区将包含空字符串

11.2 演示示例

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

int main()
{
    const wchar_t* path = L"C:\\Windows\\system32\\notepad.exe";
    wchar_t drive[_MAX_DRIVE];
    wchar_t dir[_MAX_DIR];
    wchar_t fname[_MAX_FNAME];
    wchar_t ext[_MAX_EXT];

    _wsplitpath(path, drive, dir, fname, ext);

    wprintf(L"Drive: %ls\n", drive);
    wprintf(L"Directory: %ls\n", dir);
    wprintf(L"Filename: %ls\n", fname);
    wprintf(L"Extension: %ls\n", ext);

    return 0;
}

11.3 运行结果

在这里插入图片描述

12. _wunlink

12.1 函数说明

函数声明函数功能
int _wunlink(const wchar_t* filename);用于删除指定的文件

参数:

  • filename : 要删除的文件的完整路径名

返回值:

  • 如果删除成功,则返回值为 0
  • 如果删除失败,则返回值为 -1 ,并且设置了全局变量 errno 来指示错误原因。

12.2 演示示例

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

int main()
{
    const wchar_t* filename = L"myfile.txt";
	// const wchar_t* filename = L"file1.txt";
    int result = _wunlink(filename);

    if (result != 0) 
    {
        perror("Failed to delete file ");
        return 1;
    }

    printf("File deleted successfully.\n");

    return 0;
}

注意: 在实际应用中,我们需要小心谨慎使用 _wunlink() 函数,因为它会永久性地删除文件,而且无法撤销。

12.3 运行结果

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用爬虫分析沪深300指数超长走势

我们知道&#xff0c;一个股市里面有非常多的股票&#xff0c;我们如何能够量化整个股市整体的行情呢&#xff0c;答案是通过一些综合性的指数。本文所选用的沪深300就是这类指数中的一个。我们先来看一下百度百科对于沪深300的解释。 由于股票价格起伏无常&#xff0c; 投资者…

蓝桥杯拿到一等奖,并分享经验

昨天和群里的小伙伴在群里聊&#xff0c;有的小伙伴竟然说蓝桥杯一等奖没有含量&#xff0c;我也是醉了&#xff01; 就像去年看了一个号主写的&#xff1a;研究生遍地都是! 放眼全国14亿人口&#xff0c;别说研究生了&#xff0c;本科生占比有多少? “蓝桥杯是我人生中得到…

数慧时空20年磨一剑:推出智能遥感云平台DIEY,自然资源多模态大模型“长城”,为地理信息产业提速

作者 | 伍杏玲 出品 | CSDN 据中国地理信息产业发展报告公布的数据&#xff0c;截至2020年末&#xff0c;行业从业单位13.8万家&#xff0c;从业人数336.6万&#xff0c;到2021年末&#xff0c;从业单位增加到16.4万家&#xff0c;从业人数增加到398万&#xff0c;产业规模越…

Go colly爬虫框架精简高效【杠杠的】入门到精通

1 前言 1.1 Go Colly 爬虫介绍 爬虫框架中&#xff0c;各中流行的编程语言都有自己热门框架&#xff0c;python中的selenium、Scrapy、PySpider等&#xff0c;Java中的Nutch、Crawler4j、WebMagic、WebCollector等。golang中colly使用Go语言编写的功能强大的爬虫框架&#xf…

pdf如何删除其中一页?不妨试试这些办法

PDF格式是一种非常常见的文档格式&#xff0c;它可以在各种系统和设备上使用&#xff0c;而且无论在哪里打开&#xff0c;都可以保持格式的一致性。有时候&#xff0c;我们需要删除PDF文档中的一页&#xff0c;无论是为了更改文档的结构&#xff0c;还是为了删除错误的信息。在…

拥抱生成式大模型 --- 提示工程篇

本文为系列的第二篇&#xff0c;主要是学习和总结chatgpt类模型的提示工程。感谢吴恩达老师的开源课程。 引言 随着大型语言模型&#xff08;LLM&#xff09;的发展&#xff0c;LLM 大致可以分为两种类型&#xff0c;即基础LLM和指令微调LLM。基础LLM是基于文本训练数据&…

Python机器学习入门 - - 贝叶斯算法学习笔记

文章目录 前言一、贝叶斯算法简介二、贝叶斯算法的数学原理1. 条件概率2. 全概率公式3. 贝叶斯公式4. 朴素贝叶斯分类器5. 高斯朴素贝叶斯分类器和伯努利朴素贝叶斯分类器 三、Python实现朴素贝叶斯分类总结 前言 贝叶斯公式是我们高中就耳熟能详的统计概率定理&#xff0c;贝…

亚马逊云科技出海日6月9日盛夏盛启

向全球价值链上游奋进 中国企业增强国际竞争力的关键&#xff0c;是努力朝全球价值链上游奋进&#xff0c;发力技术出海。中国的出海新机遇&#xff0c;背后曾是疫情在全球按下数字互联和数字化升级的快进键&#xff0c;跨境电商、在线社交、移动支付、数字服务等数字经济迎来…

如何让你的 Jmeter+Ant 测试报告更具吸引力?

目录 引言 一、安装apache-Ant 二、Jmeter准备 3、生成测试报告 4、JMeter动态参数处理逻辑是什么&#xff1f; 5、JMeter是怎么做API自动化测试的&#xff1f; 结语 引言 想象一下&#xff0c;你辛苦搭建了一个复杂的网站&#xff0c;投入了大量的时间和精力进行开发和…

005 - STM32学习笔记 - 启动代码

005 - STM32学习笔记 - 启动代码 常用汇编指令 指令名称作用EQU给数字常量取一个符号名&#xff0c;相当于C语言中的#define&#xff1b;AREA汇编一个新的代码段或者数据段&#xff1b;SPACE分配内存空间&#xff1b;PRESERVE8当前文件栈需要按照8字节对齐&#xff1b;EXPORT…

k8s pv pvc的介绍|动态存储|静态存储

k8s pv pvc的介绍|动态存储|静态存储 1 emptyDir存储卷2 hostPath存储卷3 nfs共享存储卷4 PVC 和 PVNFS使用PV和PVC 4 搭建 StorageClass NFS&#xff0c;实现 NFS 的动态 PV 创建 1 emptyDir存储卷 当Pod被分配给节点时&#xff0c;首先创建emptyDir卷&#xff0c;并且只要该…

详解c++STL—函数对象

目录 1、函数对象 1.1、函数对象概念 1.2、函数对象的使用 2、谓词 2.1、谓词概念 2.2、一元谓词 2.3、二元谓词 3、内建函数对象 3.1、理解内建函数对象 3.2、算术仿函数 3.3、关系仿函数 3.4、逻辑仿函数 1、函数对象 1.1、函数对象概念 概念&#xff1a; 重载…

编译原理个人作业--第六章——基于 编译原理 国防工业出版社 第三版

2 对表达式((a)(b)) (1) 按照表6.4属性文法构造抽象语法树 (2) 按6.17翻译模式构造表达式抽象语法树 5(1) 下列文法对整型常数、实型常熟世家加法运算符 生成表达式&#xff0c;当两个整型数相加&#xff0c;结果为整形&#xff0c;否则结果为实型 E → E T ∣ T E\r…

面试技术点

一、对热修复、插件化、模块化、组件化有一定研究。 1、模块化 将共享部分或业务模块抽取出来形成独立module。 2、组件化 基于模块化&#xff0c;核心思想是角色的转换&#xff0c;在打包时是library&#xff0c;分离独立的业务组件如微信朋友圈。 3、热修复和插件化种类、…

电力系统机组组合优化调度(IEEE14节点、IEEE30节点、IEEE118节点)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f4dd;目前更新&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;电力系统相关知识&#xff0c;期刊论文&…

Java并发编程-synchronized

目录 1. synchronized在jdk 1.6中的优化 1.1 锁消除 1.2 锁粗化 1.2 锁升级/锁膨胀 1.2.1 锁升级原理 1.2.2 自适应自旋锁 2. synchronized实现原理 3. synchronized和Lock的对比 1. synchronized在jdk 1.6中的优化 在JDK1.5的时候,Doug Lee推出了ReentrantLock,lock的…

chatgpt赋能Python-python_os拷贝文件

Python os拷贝文件 – 从简介到实现 Python os库是一个经常使用的工具&#xff0c;它是Python的标准库&#xff0c;提供了与操作系统进行交互的函数和方法。其中&#xff0c;os拷贝文件是其常用的功能之一&#xff0c;可以用来实现文件备份、文件复制等等操作。接下来&#xf…

windows sever服务器安装系统新手版

混在learnsite群里已经有几年了吧&#xff0c;但是只有一段时间用了别人现成的一个iso版本还比较老&#xff0c;这次打算自己弄一个&#xff0c;一开始打算linux下弄&#xff0c;结果系统都装完了发现人家说learnsite在linux下有点bug没解决好&#xff0c;只能win下再弄&#x…

Vue+uniapp桃源婚恋交友APP 安卓小程序 nodejs java python

小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 开发模式&#xff1a;混合开发本文先提出了开发基于小程序的桃源婚恋交友APP系统的背景意义&#xff0c;然后通过功能性和非功能性分析阐述本系统的需求&#xff0c;然后进行系统设计。技术实现部分选择Jav…

据不可靠消息,ST的新一代机皇正式命名为STM32V8系列,搭载Cortex-M85内核

根据以往的传统单片机命名方式&#xff1a; C0, L0, G0, F0 > Cortex-M0内核 F1, L1 > Corterx-M3内核 F2, F3 > Corterx-M3/M4 F4&#xff0c;G4&#xff0c;L4, L4 > Cortex-M4内核 L5&#xff0c;U5, H5 > Cor…
最新文章