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

企业的网站设计能否以为导向网站域名列表怎么填写

企业的网站设计能否以为导向,网站域名列表怎么填写,公司网站放哪些内容,制作微信网站一 linux 命令中重定向#xff0c;使用实现 通过 大于号 将前面的内容写入到某一个地方 cat main.c b.txt //cat main 本身的意思是 显示main.c的值#xff0c;后面加上 b.txt 会将显示在屏幕上的字符全部写到b.txt中 例子#xff1a;将 ls -l 的内容 通…一 linux 命令中重定向使用实现 通过 大于号  将前面的内容写入到某一个地方 cat main.c b.txt   //cat main 本身的意思是 显示main.c的值后面加上 b.txt 会将显示在屏幕上的字符全部写到b.txt中 例子将 ls -l 的内容 通过重定向 保存到 list.txt中 hunandedehunandede-virtual-machine:~$ ls -l list.txt hunandedehunandede-virtual-machine:~$ cat list.txt total 80 drwxrwxr-x 2 hunandede hunandede 4096 2月 20 18:55 aaa drwxrwxr-x 4 hunandede hunandede 4096 2月 21 15:16 day02 drwxrwxr-x 11 hunandede hunandede 4096 2月 23 17:47 day03 drwxrwxr-x 2 hunandede hunandede 4096 2月 28 08:19 day04 drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Desktop drwxr-xr-x 3 hunandede hunandede 4096 1月 23 23:28 Documents drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Downloads -rw-r--r-- 1 hunandede hunandede 8980 1月 23 20:24 examples.desktop drwxrwxr-x 2 hunandede hunandede 4096 2月 20 17:39 head -rw-rw-r-- 1 hunandede hunandede 0 2月 28 08:23 list.txt drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Music drwxrwxr-x 2 hunandede hunandede 4096 1月 23 23:47 mydocument drwxrwxr-x 3 hunandede hunandede 4096 2月 19 14:05 nginx drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Pictures drwxrwxr-x 3 hunandede hunandede 4096 2月 23 00:40 projects drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Public drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Templates drwxr-xr-x 2 hunandede hunandede 4096 1月 23 21:50 Videos drwxr-xr-x 3 hunandede hunandede 4096 1月 23 21:04 下载二 dup 和dup2 函数 重点是dup2函数的理解和应用 重定向对象的函数就是 dup 和dup2 dup 函数 非重点 函数原型 #include unistd.h int dup(int oldfd);           函数意思 The  dup()  system  call  creates  a copy of the file descriptor oldfd, dup函数主要是将 参数fd 拷贝一份有就是让 多个fd 指向同一个文件 返回值 成功返回可以使用的新的值 失败返回-1errno被设置 RETURN VALUE        On success, these system calls return the new descriptor.  On error, -1        is returned, and errno is set appropriately.   dup2 函数 重点 函数原型 #include unistd.h int dup2(int oldfd, int newfd); 函数参数 oldfd  newfd 函数意义 使用oldfd 的值 替换 newfd的值 也就是说newfd也会指向oldfd的内容 返回值 成功的话返回newfd 的值失败返回-1errno 被设置。 例子验证 dup例子 //dup例子int main(int argc , char * argv[]) {int ret 0;//int fd open(argv[1], O_RDWR);int fd open(/home/hunandede/projects/linuxcpp/main.cpp, O_RDWR);//int fd open(/home/hunandede/projects/linuxcpp/dict.txt, O_RDWR);if(fd -1){perror(open file fail \n);ret fd;return ret;}int fd2 dup(fd);if (fd2-1) {perror(dup fd error);ret fd2;return ret;}printf(fd %d,fd2 %d\n,fd,fd2);//那么这里可以通过fd2读取fd中的数据吗测试一下//测试中我们发现第一个bufread 前三个字符是 -17 -69 -65 这是UTF-8格式的前三位char bufread[10] { 0 };ret read(fd2,bufread,10);if (ret0) {perror(read fd2 error\n);return ret;}else {cout bufread endl;}bufread[10] { 0 };ret read(fd2, bufread, 10);if (ret 0) {perror(read fd2 error\n);return ret;}else {cout bufread endl;}//前面使用fd2都是可以读取到的且第二次读取会紧挨着第一次读取到的位置//那么我们接着从fd读是否可以呢结果是可以的那么我们要close 的时候要close几次呢bufread[10] { 0 };ret read(fd, bufread, 10);if (ret 0) {perror(read fd error\n);return ret;}else {cout bufread endl;}ret close(fd);cout start close rer ret endl;ret close(fd2);cout end close ret ret endl;return 0; } dup2例子 //dup2例子,注意两个问题 //1.open几个file就要close几个file //2.如果使用不同的fd对同一个文件进行读写那么读取的位置不会发生变化每次都在上一次读取的位置停留int main() {int ret 0;int fd open(/home/hunandede/projects/linuxcpp/main.cpp, O_RDWR);int fd2 open(/home/hunandede/projects/linuxcpp/dict.txt, O_RDWR);cout fd fd2 endl;ret dup2(fd,fd2);//fd中的内容替换了fd2中的内容fd还是3fd2还是4不过是fd2指向的已经变成fd的指向了cout after fd fd2 endl;char readbuf[10] { 0 };read(fd2,readbuf,10);cout readbuf endl;readbuf[10] { 0 };read(fd2, readbuf, 10);cout readbuf endl;readbuf[10] { 0 };read(fd, readbuf, 10);cout readbuf endl;ret close(fd);cout ret ret endl;ret close(fd2);cout retaaa ret endl;return 0; } 三 fcntl实现dup 和 dup2 知道就行 //fcntl实现dup, 知道有这种写法就行 int main() {cout start endl;int fd open(/home/hunandede/projects/linuxcpp/main.cpp, O_RDWR);int fd2 fcntl(fd,F_DUPFD,0); cout fd fd2 endl; //最后一个参数表示我们想要的fd的值但是结果为 3 和 4这是因为0已经被占用系统默认给一个可以使用的空闲的fd。int fd3 fcntl(fd,F_DUPFD,7);//结果为7 这是因为7没有被使用char readbuf[10] { 0 };read(fd2, readbuf, 10);cout readbuf endl;readbuf[10] { 0 };read(fd2, readbuf, 10);cout readbuf endl;readbuf[10] { 0 };read(fd, readbuf, 10);cout readbuf endl;int ret close(fd);cout ret ret endl;ret close(fd2);//clost 这个也不会error成功关闭。cout retaaa ret endl;return 0; } 四进程和程序 程序和进程 程序是指编译好的二进制文件在磁盘上存放 不占用系统资源(cpu、内存、打开的文件、设备、锁....) 进程是一个抽象的概念与操作系统原理联系紧密。进程是活跃的程序占用系统资源。在内存中执行。(程序运行起来产生一个进程) 程序 → 剧本(纸) 进程 → 戏(舞台、演员、灯光、道具...) 同一个剧本可以在多个舞台同时上演。同样同一个程序也可以加载为不同的进程(彼此之间互不影响) 如同时开两个终端。各自都有一个bash但彼此ID不同。 五 多道程序设计 了解 我们会一边看小说一边听歌这说明计算机 在 同时的进行两个不同的进程一个QQ小说一个千千静听 那么计算机是怎么做到的呢 在单核CPU 的年代是通过 它们在管理程序控制之下相互穿插的运行。多道程序设计必须有硬件基础作为保证。 时钟中断即为多道程序设计模型的理论基础。 并发时任意进程在执行期间都不希望放弃cpu。因此系统需要一种强制让进程让出cpu资源的手段。时钟中断有硬件基础作为保障对进程而言不可抗拒。 操作系统中的中断处理函数来负责调度程序执行。 在多道程序设计模型中多个进程轮流使用CPU (分时复用CPU资源)。而当下常见CPU为纳秒级1秒可以执行大约10亿条指令。由于人眼的反应速度是毫秒级所以看似同时在运行。 1s 1000ms, 1ms 1000us, 1us 1000ns    1000000000 实质上并发是宏观并行微观串行 六 虚拟内存和物理内存映射关系 cpu执行代码的大致逻辑如下 我们在这里是要知道这个 MMUMMU存在于CPU 的内部是一个计算机的硬件 主要功能是 虚拟地址到物理地址的转换即虚拟内存管理、 我们在这里主要了解这个功能 内存保护、也就是 修改 内存 访问级别。我们在这里还需要了解这个功能 中央处理器高速缓存的控制  我们在这里暂时不需要了解这个功能 关于 虚拟内存地址到 物理内存地址的转换 那么这个物理内存和虚拟内存分别指的是什么他们又是怎么映射的呢 当每一个程序跑起来的时候就会给这个程序一个虚拟的内存如下图左边的部分 物理内存就是我们买电脑时配置的那块内存当前假设是512M的金士顿的内存条 物理内存和虚拟内存通过MMU 这个中间翻译官进行映射 好我们把上图再完善一下当同时有两个进程 a.out  和 b.out 跑起来的情况 最终图 也就是因为不同的进程的kernel中的元素 通过 MMU 最后 映射的物理内存是在 同一片 区域的因此才有后面学习的进程间通讯的内容不然怎么通讯呢 关于 内存保护、也就是 修改 内存 访问级别 从前面的图我们了解到如果是从user 区域的数据通过MMU 映射到物理内存 如果是从kernel区域的数据通过MMU也是映射到物理内存。 那么映射的这个物理内存是怎么区分的呢 实际上 是MMU做了事情如果MMU发现你的变量是从user 区域过来的则在映射成物理内存的时候会给这个物理内存映射成3级 如果MMU发现你的变量是从kernel 区域过来的则在映射成物理内存的时候会给这个物理内存映射成0级 当我们使用write 函数要从user 写到kernel的时候MMU会将这个3级转化成0级慢就慢在这里。慢在转化的这个过程。 七 pcb进程块详解   我们知道每个进程在内核中都有一个进程控制块PCB来维护进程相关的信息Linux内核的进程控制块是task_struct结构体。 /usr/src/linux-headers-3.16.0-30/include/linux/sched.h文件中可以查看struct task_struct 结构体定义。其内部成员有很多我们重点掌握以下部分即可 * 进程id。系统中每个进程有唯一的id在C语言中用pid_t类型表示其实就是一个非负整数。 * 进程的状态有 初始态 就绪、运行、挂起、停止等状态。 * 进程切换时需要保存和恢复的一些CPU寄存器。 * 描述虚拟地址空间的信息。 * 描述控制终端的信息。 * 当前工作目录Current Working Directory。 * umask掩码。 * 文件描述符表包含很多指向file结构体的指针。 * 和信号相关的信息。 * 用户id和组id。 * 会话Session和进程组。 * 进程可以使用的资源上限Resource Limit。 八 linux 相关的环境变量 8.1 使用 env命令查看所有的环境变量 常用的环境变量 LD_LIBRARY_PATH 动态连接器 PATH 记录可执行文件目录位置的 SHELL 记录当前使用的解释器是那个 TERM当前终端类型是啥也就是那个黑框框类型是啥在图形界面终端下它的值是xterm终端类型决定了一些程序的输出显示方式。比如图形界面终端可以显示汉字而字符终端一般不行。 LANG 语言和local决定了字符编码以及时间货币等信息的显示形式 HOME 当前用户主目录的路径很多程序需要在主目录下保存配置文件使得每个用户在运行该程序时都有自己的一套配置。 8.2 使用 echo $xxx 查看某一个具体的环境变量 echo 是回显的意思如下的语句是显示PATH环境变量的值 echo $PATH 8.3 代码获取 环境变量getenv函数 获取环境变量值 char *getenv(const char *name); 成功返回环境变量的值失败NULL (name不存在) 练习编程实现getenv函数。  【getenv.c】 8.4 设置 环境变量 setenv函数 设置环境变量的值 int setenv(const char *name, const char *value, int overwrite);   成功0失败-1 参数overwrite取值 1覆盖原环境变量 0不覆盖。(该参数常用于设置新环境变量如ABC haha-day-night) 8.5 删除环境变量的定义 unsetenv函数 int unsetenv(const char *name); 成功0失败-1 注意事项name不存在仍返回0(成功)当name命名为ABC时则会出错。
http://www.zqtcl.cn/news/52493/

相关文章:

  • 中小网站公司做的推广怎么样亚马逊跨境电商注册
  • 大型网站建设机构哪家好wordpress 4 优化
  • 广东营销型网站如何做网上销售网站
  • 网站设计与制作培训班网站建设工作情况报告
  • 莱芜哪家企业做网站微网站 一键拨号
  • 大学生网站建设结题报告suxing wordpress
  • 做3d人物模型素材下载网站明星个人flash网站源码
  • 建设网站最好的大连门户网站建设
  • 公司做网站有意义么学生怎样建设网站
  • 常州微信网站建设好么网站服务器人多怎么挤进去
  • 怎么建设网站是什么深圳网站建设q双赢世讯
  • 杭州网站推广优化公司wordpress 更改鼠标样式
  • 网站后台怎么修改代码网站平台建设包括哪些
  • 网站建设报告怎么写网站网页制作企业
  • 青州哪里做网站做得好网站服务器出问题
  • 6.网站开发流程是什么中山市建设局投诉网站
  • 合肥做网站的装饰
  • 网站如何做诺顿认证网站开发开发需求文档模板
  • 龙门惠州网站建设湖北网站设计
  • 汕头网站建设维护住建厅官网证件查询
  • 渭南市住房和城乡建设局网站学做网站用到哪些知识
  • 漳州网站建设优化重庆关键词排名推广
  • 网站查询域名访问站群论坛
  • 做长老环的网站网页开发者工具
  • 做网站开发面临的困难南部县网站建设公司
  • .net做网站教程设计美观网站有哪些
  • 如何创建一个网站的流程怎样修改wordpress
  • 怎样把网站提交到百度网泰网站建设
  • 绩效管理网站开发网页传奇游戏修改器
  • 网站开发架构分类山东城市建设职业学院教务网站