网站建设金手指排名专业石家庄网站建设浩森宇特

当前位置: 首页 > news >正文

网站建设金手指排名专业,石家庄网站建设浩森宇特,长春网络建设公司,成都网络运营推广C语言函数大全 本篇介绍C语言函数大全– _w 开头的函数

  1. _wspawnl 1.1 函数说明 函数声明函数功能int _wspawnl(int mode, const wchar_t* cmdname, const wchar_t* arglist, …);启动一个新的进程并运行指定的可执行文件 参数#xff1a; mode #xff1a; 启动命令的…C语言函数大全 本篇介绍C语言函数大全– _w 开头的函数
  2. _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.hint main() {const wchar_t cmdname LSubTest.exe;const wchar_t* arglist LSubTest.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.hint main(int argc, char *argv[], char **envp) {printf(SubEnvTest Command line arguments:\n);for (int i0; iargc; 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.hint main() {const wchar_t cmdname LSubEnvTest.exe;const wchar_t* arglist[] { LSubEnvTest.exe, LHuazie, NULL };const wchar_t* envptr[] { LHelloworld, 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.hint main() {const wchar_t* cmdname Ljava.exe;const wchar_t* arg0 Ljava.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.hint main() {const wchar_t* cmdname LSubEnvTest.exe;const wchar_t* arg0 LSubEnvTest.exe;const wchar_t* arg1 LHuazie;const wchar_t* arg2 Lhelloworld;const wchar_t* envp[] { Lkeyvalue, 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.hint main() {const wchar_t* cmdname LSubTest.exe;const wchar_t* argv[] { LSubTest.exe, LHuazie, 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 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULLenvp 可选包含所有需要在子进程中使用的环境变量。如果为 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.hint main() {const wchar_t* cmdname LSubEnvTest.exe;const wchar_t* argv[] { LSubEnvTest.exe, LHuazie, Lhelloworld, NULL };const wchar_t* envp[] { Lkeyvalue, 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.hint main() {const wchar_t* cmdname Ljava.exe;const wchar_t* argv[] { Ljava.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 要传递给子进程的命令行参数。该数组中最后一个元素必须是 NULLenvp 可选包含所有需要在子进程中使用的环境变量。如果为 NULL则子进程使用调用进程的当前环境 8.2 演示示例 #include stdio.h #include stdlib.h #include wchar.h #include process.hint main() {const wchar_t* cmdname Ljava.exe;const wchar_t* argv[] { Ljava.exe, L-version, NULL };const wchar_t* envp[] { Lkeyvalue, 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.hint main() {const wchar_t* command Lcmd /c copy file1.txt file2.txt;// 执行命令int result _wsystem(command);// 检查命令是否执行成功if (result -1) {wprintf(LFailed to run command.\n);return 1;}// 打印命令的退出代码wprintf(LCommand exited with code %d\n, result);return 0; }9.3 运行结果 运行前 运行后
  3. _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 200int main() {const wchar_t* file Lnotepad.exe;wchar_t path[MAX_PATH];// 在 PATH 环境变量中查找文件_wsearchenv(file, LPATH, path);// 打印文件的完整路径wprintf(LFound 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.hint main() {const wchar_t* path LC:\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(LDrive: %ls\n, drive);wprintf(LDirectory: %ls\n, dir);wprintf(LFilename: %ls\n, fname);wprintf(LExtension: %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.hint main() {const wchar_t* filename Lmyfile.txt;// const wchar_t* filename Lfile1.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 运行结果