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

做网站会犯法吗专做零食的网站

做网站会犯法吗,专做零食的网站,sem网络推广公司,西安专业做网站的的公司🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 前几天在搞硬件&…

 🪐🪐🪐欢迎来到程序员餐厅💫💫💫

          主厨:邪王真眼

主厨的主页:Chef‘s blog  

所属专栏:青果大战linux

总有光环在陨落,总有新星在闪烁


前几天在搞硬件,所以拖更了,现在基本完成,于是立刻投入了Linux的怀抱

main的参数

我们c语言学习的第一段代码那一定是hello,world,之后我们在此基础之上,不断地学习着。

 include<stdio.h>  int main(){  printf("hello,world\n");                                                                                                                                                                                                    } 

想必大家都知道main本质也是一个函数,他也像上面那样显示的一样,是个没有形参的函数。

、、、还是说,并不是这样!

某些小伙伴可能见过main下面这种用法

 #include<stdio.h>int main(int argc ,char* argv[]){printf("%d",argc);for(int i=0;i<argc;i++)printf("%s\n",argv[i]);                                                                                                                                                                                                 }

这里出现了两个参数,一个int整型,一个指针数组,而他们就是我们在linux中能够使用命令的关键。

我们对代码进行加工,

#include<stdio.h>
#include<string.h>
int main(int argc ,char* argv[]){printf("argc:%d\n",argc);if(argc!=2){printf("格式错误\n");}else {if(strcmp(argv[1],"-a")==0)printf("功能a\n");else if(strcmp(argv[1],"-b")==0)printf("功能b\n");else  if(strcmp(argv[1],"-c")==0)printf("功能c\n");else{printf("其他功能\n");}}
}

我知道,你很急,但你先别急,马上解惑

在我们像以往一样直接./test1.exe运行文件,输出如下

argc的值是1.并告诉我们格式错误。接着我们像指令一样,加入“-a”“-b”,“-c”选项,输出如下

 这时敏锐的朋友就已经意识到了,我们在命令行所使用的命令及其对应的选项,就是用的main函数带参数的方法!

我们在命令行输入一条语句,他会被按照空格进行分割,像上面的“./test1.c -a”,就会被分成两个参数,argc所存储的就是参数的个数,所有参数都会被以字符串的形式从左到右依次放到argc数组中,该数组最后一个元素是NULL,所以也可以这么写

#include<stdio.h>
int main(int argc,char*argv[]){
printf("argc:%d\n",argc);
int i=0;
while(argv[i])
{printf("%s\n",argv[i++]);
}}

在此基础之上,我们不禁好奇,分割这个字符串的是谁呢,显然他不是该可执行程序,因为这段代码从main函数才开始运行,但是分割字符串是发生在调用main之前的(不然没法传参)

要知道我们在命令行所启动的程序,不论是指令也好,是自己写的代码也罢,他们的父进程是唯一且确定的,即shell,他们互为父子进程,因此我们不难推测就是bash分割了字符串,接着以main函数传参的方式把数据传给了我们的test3.exe,至于具体怎么操作的,我们以后再说

我叮嘱一下,这个main函数的参数不是说一定要写为argc和argv,只是我们普遍这样写,你要是非要写成int a和char*b[]也是没问题的。


环境变量

事实上,main函数有三个参数,第三个就是环境变量,我们来展示一下

#include<stdio.h>
int main(int argc,char*argv[],char*env[]){
int i=0;
while(env[i])
{printf("%s\n",env[i++]);
}
}

我们一运行文件,就打印出一大堆字符串,他们就是环境变量。

环境变量的概念

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数

我们来讲解几个常见的环境变量 

  • PATH : 指定命令的搜索路径
  • HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
  • SHELL : 当前Shell的路径,它的值通常是/bin/bash。
  • USER:当前正在使用系统的用户是谁
  • HOME:当前用户的家目录在哪
  • PWD:当前路径

关于PATH

        我们在使用指令时直接输入指令名称和选项即可,但是在运行自己写的可执行文件时,需要在他前面加上相对路径或者绝对路径。这就是PATH的作用,PATH是多个路径拼接而成的字符串由“:”作为分隔符,在运行可执行文件时,如果没有带路径,会先在PATH中查找,看该文件是否在这些路径中,如果有就可以运行,如果没有则相当于找不到该可执行文件,就无法执行。而指令的绝对路径包含在PATH中,因此可以不待路径直接运行。 


查看环境变量

  • echo$+名称

  •  getenv查看环境变量

输入一个环境变量名,他会返回该环境变量的值,包含在stdlib.h中

注意不可以查看本地变量

#include<stdio.h>
#include<stdlib.h>
int main(){printf("%s\n",getenv("PATH"));printf("%s\n",getenv("a"));}

  •  指针数组

enviorn,是一个外部变量,这是c语言提供的,我们直接加extern声明即可

#include<stdio.h>
#include<unistd.h>
extern char**environ;
int main(){
int i=0;while(environ[i])printf("%s\n",environ[i++]);
}

  • env指令 

显示所有环境变量

  • set指令

显示所有环境变量和本地变量


 修改环境变量

PATH=xxx即可

不过此时我们会发现指令无法使用了,这是因为之前的那些路径被现在的覆盖了如果是想在原路径的基础上进行添加只需要先退出xshell(恢复到原本的PATH)再PATH=$PATH:xxx即可

 我们修改了PATH这个环境变量,但是一关闭xshell,再开启,PATH的值就恢复成原来的样子了,我们对他的修改没有在关闭后保存。于是我们可以推测这些环境变量是存在于内存中的。就像我们c语言可以malloc一样,程序在启动时开辟一段内存空间,从父进程继承环境变量。父进程的环境变量则是由父进程的父进程传递来的。其最终源头,是一份系统配置文件,存储在硬盘中,掉电不丢失,当我们登录账号时,会启动shell进程,他会从该文件中读取相关信息并开辟空间进行存储,组成自己的环境变量表,而shell是所有进程的父进程,因此别的进程就可以从他这里继承环境变量了。在用户目录下,有两个隐藏文件。就是我们说的系统配置文件。


设置与取消环境变量

a=100

我们用echo查一下

本质是你的shell会把这个字符串记录下来,并为他开辟一片空间,于是echo查询的时候就会查到他,这种变量叫做本地变量,这种变量无法被子进程继承

想要把本地变量转化为环境变量,只需要export+本地变量名,就可以了

也可以在定义时写为

export a=10

取消环境变量和本地变量unset 变量名


-------------很好,关于环境变量就算是讲完了,觉得有用的话,还请关注一下作者吧。-------------

http://www.yayakq.cn/news/54032/

相关文章:

  • wordpress网站漏洞一些好用的网站
  • 大网站制作购物网站前台功能模块分析
  • 大型公司为什么做网站秀山网站建设
  • 百度关键词搜索排名查询佛山旺道seo
  • 哪里有免费的网站模板下载 迅雷下载软件网页设计公司怎么选
  • 网站项目根据什么开发广告策划书不包括什么内容
  • 免费推广网站翻译英文做企业网站有前途吗
  • 打开一个网站搜索页面跳转jswordpress社交分享非插件
  • html网站设计实验报告网络防御中心
  • 狠狠做网站 百度一下四川科隆建设有限公司网站
  • 韩国有哪些专业做汽车的网站免费商城网站
  • 烟台网站建设电话深圳企业网站建设推广外包服务商
  • 国内做网站比较好的公司有哪些前端开发有哪些
  • ae做模板下载网站微信网站搭建价格
  • 企业cms建站全英文外贸网站建设
  • 企业网站制作哪些公司制作yahoo搜索引擎入口
  • 如何创建网站页面二合一收款码免费制作网站
  • vue 做企业网站服务关系型网站怎么做
  • 问题不大工作室 网站手机购物网站设计
  • 网站网页文案怎么写舟山网站设计公司
  • 如何用手机建网站网站服务器连接被重置
  • 北京怎样在社保网站上做减员企业宣传网站系统建设方案
  • 台州网站建设简单的网站注册流程图
  • 志愿北京网站注册昆明平台开发公司
  • 织梦移动网站浙江建设工程信息网查询
  • php 网站开发架构wordpress好用的插件推荐
  • 高水平高职建设网站南宁建设学院官网
  • 网站建设和维护自学建筑铝模板多少钱一平方米
  • 做企业网站的优势网站导航还值得做
  • 邢台123式的网站怎么做新乡市建设工程网站