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

用模板做企业网站泉州百度关键词排名

用模板做企业网站,泉州百度关键词排名,四川成都今日头条新闻,网站开发的语言execve() 是 Linux/UNIX 中的 exec 函数家族中的一个,它允许进程执行一个新的程序。具体地,execve() 替换当前进程的映像为新的程序映像。 函数原型如下: int execve(const char *pathname, char *const argv[], char *const envp[]);pathn…

execve() 是 Linux/UNIX 中的 exec 函数家族中的一个,它允许进程执行一个新的程序。具体地,execve() 替换当前进程的映像为新的程序映像。

函数原型如下:

int execve(const char *pathname, char *const argv[], char *const envp[]);
  • pathname: 要执行的程序的路径。
  • argv: 是一个字符串数组,表示要传递给新程序的参数列表。通常第一个参数 (argv[0]) 是程序的名称。这个列表必须以 NULL 指针结束。
  • envp: 是一个环境变量的字符串数组,代表新程序的环境。也必须以 NULL 指针结束。

如果 execve() 成功,它不会返回,因为调用进程的代码和数据已被新程序替换。如果出现错误,它会返回 -1 并设置适当的 errno

示例

在这个示例中,我们将尝试执行 /bin/ls 命令,列出当前目录的内容,并传递两个参数给它:-l(表示长格式)和 -a(表示列出所有文件,包括隐藏文件)。

#include <stdio.h>
#include <unistd.h>int main() {char *pathname = "/bin/ls";  // 要执行的程序的路径char *argv[] = { "ls", "-l", "-a", NULL };  // 参数列表char *envp[] = { "PATH=/bin:/usr/bin", "TERM=xterm", NULL };  // 环境变量,只是为了示例printf("Executing ls...\n");if (execve(pathname, argv, envp) == -1) {perror("execve failed");return 1;}// 如果 execve() 成功,以下代码将不会执行printf("This won't be printed if execve is successful\n");return 0;
}

在此示例中,如果 execve() 调用成功,ls 命令将会执行,并且“This won't be printed if execve is successful”这行代码将不会执行,因为原始程序的映像已被 ls 命令替换。如果 execve() 失败,它会返回 -1,然后将会打印一个错误消息,并显示“This won't be printed if execve is successful”。

majn@tiger:~/C_Project/process_project$ ./execve_demo 
total 152
drwxrwxr-x 3 majn majn  4096 Sep 17 16:34 .
drwxrwxr-x 5 majn majn  4096 Sep 17 10:21 ..
drwxrwxr-x 2 majn majn  4096 Sep 17 15:03 .vscode
-rwxrwxr-x 1 majn majn 16088 Sep 17 16:34 atexit_demo
-rw-rw-r-- 1 majn majn   345 Sep 17 16:34 atexit_demo.c
-rwxrwxr-x 1 majn majn 16112 Sep 17 16:06 errno_demo
-rw-rw-r-- 1 majn majn   284 Sep 17 16:07 errno_demo.c
-rwxrwxr-x 1 majn majn 16056 Sep 17 10:56 exec_demo
-rw-rw-r-- 1 majn majn   160 Sep 17 10:56 exec_demo.c
-rwxrwxr-x 1 majn majn 16144 Sep 17 11:14 execve_demo
-rw-rw-r-- 1 majn majn   410 Sep 17 11:14 execve_demo.c
-rwxrwxr-x 1 majn majn 16096 Sep 17 10:25 fork_demo
-rw-rw-r-- 1 majn majn   343 Sep 17 10:25 fork_demo.c
-rwxrwxr-x 1 majn majn 16272 Sep 17 15:22 status_demo
-rw-rw-r-- 1 majn majn   837 Sep 17 15:22 status_demo.c
-rwxrwxr-x 1 majn majn 16312 Sep 17 15:11 waitpid_demo
-rw-rw-r-- 1 majn majn   840 Sep 17 15:11 waitpid_demo.c

char *envp[] = { “PATH=/bin:/usr/bin”, “TERM=xterm”, NULL }; 这是一个环境变量的数组,用于传递给被 execve() 执行的程序。当一个程序运行时,它接收到了一个环境变量的集合,这些变量可以被用来影响程序的行为或配置。

在给出的数组中:

  • "PATH=/bin:/usr/bin": PATH 是一个环境变量,用于指示 shell 和其他程序在哪里查找可执行文件。值 /bin:/usr/bin 是一个冒号分隔的目录列表,当用户或程序尝试运行一个命令但没有指定其完整路径时,系统会在这些目录中查找该命令。

  • "TERM=xterm": TERM 是一个环境变量,用于指示当前终端的类型。这对于那些需要知道如何与终端互动的程序(例如文本编辑器或分页器)是有用的。在这种情况下,它被设置为 xterm,这是一个常见的终端类型。

  • NULL: 这是数组的结束标志,它告诉 execve() 在哪里停止读取环境变量。

需要注意的是,当你在日常使用 shell 时,许多环境变量(如 PATH, HOME, LANG 等)已经被设置并传递给你运行的每个程序。但在 execve() 中,你必须明确地提供你想要传递给新程序的环境变量列表,否则它不会继承任何环境变量。

http://www.mnyf.cn/news/50212.html

相关文章:

  • 云南建设投资集团网站新人跑业务怎么找客户
  • 关于学校的网站模板免费下载公众号软文是什么意思
  • 在建设银行网站申请完信用卡网站如何注册
  • 电视台网站开发下载百度app到手机上
  • wordpress怎么实现注册登录贵州百度seo整站优化
  • 万州哪里有做网站的好的网络推广平台
  • 手机怎么用wordpress在seo优化中
  • 境外电商平台入驻seo应该怎么做
  • 焦作市住房和城乡建设局网站哈尔滨seo整站优化
  • 西宁集团网站建设百度 搜索热度
  • 如何做直销产品的网站seo编辑的工作内容
  • 长沙有什么好玩的谷歌外贸seo
  • 网站付费推广渠道软文撰写
  • 网站建设林晓东汕头百度网络推广
  • 网站被做301广州日新增51万人
  • 外国有没有中国代做数学作业的网站seo快速排名软件价格
  • 开县网站建设网站页面优化方案
  • 公司网站流程自己怎么建网站
  • 门户网站建站目标百度seo优化多少钱
  • 网站建设引擎关键词优化seo外包
  • 全立体网站建设seo整站优化外包
  • 免费的短视频app大全安卓南京网络推广优化哪家好
  • 2020十大热点事件seo专业培训班
  • 网站集约化建设意义搜索词分析
  • 做网站的好处在哪里阜康管委主任中国十大营销策划公司排名
  • 游戏网站建设与策划网络营销推广计划书
  • 国外网站建设品牌艺考培训
  • 成都品牌设计网站百度站长工具怎么关闭
  • 广东疫情哪个市最严重点金推广优化公司
  • 网站怎样自己做推广网络服务公司经营范围