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

怎么自己做五合一网站wordpress删除相似文章

怎么自己做五合一网站,wordpress删除相似文章,wordpress在线不能播放视频,我要自学网网站建设环境变量概念 我们用语言写的文件编好后变成了程序,./ 运行的时候他就会变成一个进程被操作系统调度并运行,运行完毕进程相关资源被释放,因为它是一个bash的子进程,所以它退出之后进入僵尸状态,bash回收他的退出结果&…

环境变量概念

我们用语言写的文件编好后变成了程序,./ 运行的时候他就会变成一个进程被操作系统调度并运行,运行完毕进程相关资源被释放,因为它是一个bash的子进程,所以它退出之后进入僵尸状态,bash回收他的退出结果,我们就能够得到他的退出结果,这是我们之前说的,现在的问题是我写的可执行程序和系统自带的指令有什么区别呢?答案是没有任何区别,只不过人家写的软件被纳入到Linux基本指令的范畴,你写的只能你自己玩,本质上都叫做可执行程序,为什么运行我自己写的程序必须要带 ./ 呢,如果想让我的程序不带 ./ 该怎么解决呢?

这里就可以找到比较好的切入点,. 就是当前路径,/ 是路径分隔符,所以 ./myproc 是我们在用相对路径的方式来定位可执行程序,换句话说,如果你愿意,你也可以从根目录开始,/home/cyx/day12/myproc,用绝对路径的方式访问自己的程序

ls可以不带 ./ 就能运行的原因在于,默认的程序在系统当中,会存在一个环境变量,它能够帮我们通过该变量在系统中特定的路径下帮我们搜索对应的ls命令,执行一条命令的前提,一定是要先找到他,找不到还执行啥呢?系统中存在的环境变量叫做PATH,读取环境变量的内容(echo $PATH)

综合刚刚所说为什么执行pwd、ls这些命令可以不带路径,原因是因为它们在特定的环境变量所指明的若干路径当中,Shell会从PATH环境变量(一串用冒号分隔的目录路径)中从左到右依次搜索这些目录,寻找与命令名称匹配的可执行文件,找到就自动执行了,不用带路径,而我们自己写的可执行程序对应的路径是自己的路径,没有在环境变量里,所以执行时无法直接找到我们的可执行程序,必须要用户指明出他对应的路径

上图可以证明,(which ls)可以看到他在环境变量/usr/bin/路径下,他就不用带 ./ 运行了,换言之,我们想不用带 ./ 就能运行也可以实现,在PATH环境变量所支持的众多:分隔的一个个路径当中,把你的路径追加到后面(export PATH=$PATH:/home/cyx/day12)

  • 注意可能会写出这样的命令(export PATH=/home/cyx/day12), 这种方式是不对的,不是把PATH是整体全部换成自己的路径,这样会把把别人的路径全部覆盖,如果你不小心误操作了环境变量,不用担心,将xshell全部关闭,重新再登录就可以了

还有另一种方式,把可执行程序拷贝到/usr/bin路径下(sudo cp -rf myproc /usr/bin)

  • 在Linux中,把可执行程序,拷贝到系统默认路径下,这种让我们可以直接访问的方式,相当于Linux下软件的安装:你们用windows当中的工具帮你们安装软件,本质是把可执行程序、配置文件,全部拷贝到你系统特定的某些路径下,比如C盘的Profile,这个动作就叫做安装,不想要了可以删掉(sudo rm /usr/bin/myproc -rf)

  • 删掉的动作其实就是某种意义上的卸载

 环境变量相关函数

1. exec 函数族

  • 这些函数用于替换当前进程的映像为新的程序。如果执行成功,原程序的代码、数据、堆栈等会被新程序覆盖,但进程ID不变
#include <unistd.h>extern char **environ;  全局变量,指向当前进程的环境变量数组(格式为 KEY=VALUE)
示例:for (char **env = environ; *env; env++) {printf("%s\n", *env);}int execl(const char *pathname, const char *arg, .../* (char  *) NULL */);
int execlp(const char *file, const char *arg, .../* (char  *) NULL */);
int execle(const char *pathname, const char *arg, .../*, (char *) NULL, char *const envp[] */);
int execv(const char *pathname, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[], char *const envp[]);
  • 命名规则

    • 后缀 l:参数通过可变参数列表传递,参数列表以NULL结尾
    • 后缀 v:参数通过数组传递,数组元素以 NULL 结尾
    • 后缀 p:在 PATH 中搜索可执行文件
    • 后缀 e:允许自定义环境变量(通过 envp 参数)
  • 错误处理:所有 exec 函数失败时会返回 -1,需检查 errno
  • 环境变量execle 和 execvpe 可以覆盖默认环境变量,其他函数继承调用进程的环境

2 getenv

  • 功能:获取指定环境变量的值。

#include <stdlib.h>char *getenv(const char *name);参数:name:环境变量名返回值:成功返回变量值(字符串),失败返回 NULL示例:char *path = getenv("PATH");

3 putenv

  • 功能:设置或修改环境变量(格式为 KEY=VALUE
#include <stdlib.h>int putenv(char *string);参数:string:环境变量字符串(如 "PATH=/usr/bin")返回值:成功返回 0,失败返回非 0注意:修改会影响当前进程及其子进程示例:putenv("MY_VAR=123");

实操

makefile

myproc:proc.cgcc -o $@ $^
.PHONY:clean
clean:rm -f myproc

exec/otherproc.cc

#include <iostream>
#include <unistd.h>using namespace std;int main()
{for(int i = 0; i < 5; i++){cout << "-------------------------------------------------------------------------"<< endl;cout << "我是另一个程序,我的pid是: " << getpid() << endl;cout << " MYENV: " << (getenv("MYENV")==NULL?"NULL":getenv("MYENV")) << endl;cout << " PATH: " << (getenv("PATH")==NULL?"NULL":getenv("PATH")) << endl;cout << "-------------------------------------------------------------------------"<< endl;sleep(1);}return 0;
}

proc.c

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>int main()
{extern char **environ;pid_t id = fork();if(id == 0){//childprintf("我是子进程: %d\n", getpid());//execl: 如果替换成功,不会有返回值,如果替换失败,一定有返回值 ==》如果失败了,必定返回 ==》 只要有返回值,就失败了//不用对该函数进行返回值判断,只要继续向后运行一定是失败的!//execl("/bin/ls", "ls", "-a", "-ln", NULL); //lsssss: 不存在//char *const myargv[] = {//    "ls",//    "-a",//    "-l",//    "-n",//    NULL//};//execv("/bin/ls", myargv); //lsssss: 不存在//execlp("ls", "ls", "-a", "-l", "-n", NULL);//execvp("ls", myargv);//char *const myenv[] = {//    "MYENV=YouCanSeeMe",//    NULL//};putenv("MYENV=YouCanSeeMe");//覆盖式写入,只执行我们定义的环境变量,系统环境变量就失效了,可以传environ全局环境变量数组execle("./exec/otherproc", "otherproc", NULL, environ); exit(1);}sleep(1);//fatherint status = 0;printf("我是父进程: %d\n", getpid());waitpid(id, &status, 0);printf("child exit code: %d\n", WEXITSTATUS(status));return 0;
}

文章转载自:

http://HpzvI7iQ.dqrpz.cn
http://eOPQk9dO.dqrpz.cn
http://TiHn32nV.dqrpz.cn
http://Wu1RyInH.dqrpz.cn
http://uA2n7b6l.dqrpz.cn
http://GK6Y4FWK.dqrpz.cn
http://j6dUdyR5.dqrpz.cn
http://qvbYRsEo.dqrpz.cn
http://IPTIwjVS.dqrpz.cn
http://8elgmXF0.dqrpz.cn
http://6JvPa3JH.dqrpz.cn
http://Bh8eCx3u.dqrpz.cn
http://GarPqauE.dqrpz.cn
http://ifuiVaII.dqrpz.cn
http://87JqsAfl.dqrpz.cn
http://txZXznNq.dqrpz.cn
http://PQe4pCui.dqrpz.cn
http://HuO0v0BU.dqrpz.cn
http://e8Sb58or.dqrpz.cn
http://HHhkijZZ.dqrpz.cn
http://3s6RSA5I.dqrpz.cn
http://EpB4Rod4.dqrpz.cn
http://UNwK0HaH.dqrpz.cn
http://tOH8km2P.dqrpz.cn
http://dVjPjRG7.dqrpz.cn
http://5SBjUE1s.dqrpz.cn
http://E1ia5rUb.dqrpz.cn
http://3ndfJvSY.dqrpz.cn
http://kqyS4sJO.dqrpz.cn
http://bI4whx2S.dqrpz.cn
http://www.dtcms.com/wzjs/774030.html

相关文章:

  • 网站的二维码怎么做的云服务器优惠活动
  • 安徽做公司网站哪家好在线代理服务器网站
  • 如何规避电子政务网站建设教训土木毕业设计代做网站
  • 小型网站开发需要什么步骤wordpress网站
  • 怎样免费做彩票网站广东省网站开发建设
  • 福建高端建设网站网站免费源码
  • 怎么做一淘宝客网站吗用安卓做网站
  • 怎么做58同城网站教程上海做网站公司有哪些
  • 肥料网站建设 中企动力公司网站最下面突然有乱码
  • 网站开发团队人员抖音广告投放代理商
  • 做带v头像的网站wordpress 目录布局
  • 企业网站设计专业好吗浙江企业在线
  • 刚开始做汽配网站要进货网站页面制作软件
  • 潍坊建设网站公司电话苏宁易购如何进行网站的建设和维护
  • 建筑设计自学网站四川集团网站建设
  • 全校网站建设与管理国外html5游戏网站
  • 怎么自己做微网站有服务器如何做网站
  • 网站做填充做网络写手赚钱的网站
  • 三元里网站建设wordpress写文章更新失败
  • 招商加盟网站建设目的自己怎么做网站模块
  • 建站园卖鞋子网站建设策划书
  • 企业网站的功能企业网络服务平台
  • 上海网站设计kinglink域名和网站的建设实训报告
  • 加强政务公开与网站建设app网站建设方案
  • 17网站一起做网店2018wordpress去除分类链接
  • 做网站卖东西企业注册公司流程
  • 想做网站找什么公司麻豆人文化活动策划有限公司
  • php 茶叶网站建设建筑工程招聘最新信息平台
  • 聊城九洲建设有限公司网站如何做别人网站镜像
  • 郑州免费网站建设在线seo推广软件