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

石狮网站建设投稿网站

石狮网站建设,投稿网站,数据中心idc机房,网站服务理念linux中exec*为加载器,可以将程序加载到内存。 main()函数也是函数,也要被调用,也要被传参 故在一个程序中exec*系列的函数先被执行 程序替换中execve是系统调用,其他的都是封装。 进程程序替换 1.创建子进程的目的&#xff1…

 linux中exec*为加载器,可以将程序加载到内存。

main()函数也是函数,也要被调用,也要被传参

故在一个程序中exec*系列的函数先被执行

程序替换中execve是系统调用,其他的都是封装。

进程程序替换

1.创建子进程的目的?

a.想让子进程执行父进程代码的一部分

b.想让子进程执行一个全新的程序

一个简单的命令行解释器

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<assert.h>#define NUM 1024
char lineCommand[NUM];
#define OPT_NUM 64
char* myargv[OPT_NUM];int main()
{while(1){printf("用户名@主机名 当前路径#");fflush(stdout);char* s=fgets(lineCommand,sizeof(lineCommand)-1,stdin);assert(s!=NULL);(void)s;lineCommand[strlen(lineCommand)-1]=0;//printf("test:%s\n",lineCommand);//字符串切割myargv[0]=strtok(lineCommand," ");int i=1;while(myargv[i++]=strtok(NULL," "));
#ifdef DEBUGfor(int i=0;myargv[i];i++){printf("myargv[%d]:%s\n",i,myargv[i]);}
#endif//执行命令pid_t id=fork();assert(id!=-1);if(id==0){execvp(myargv[0],myargv);}waitpid(id,NULL,0);}return 0;
}
4.撤销与恢复
  • 撤销语法::u //键盘输入符号:和字母u再回车(属于末行模式),撤销上一步操作

  • 恢复语法:ctrl+r //键盘ctrl+r,恢复撤销操作(即取消之前的撤销操作)

Linux(CENTOS)操作系统_centos cp-CSDN博客文章浏览阅读1k次,点赞23次,收藏8次。学习Linux做的笔记分享一些_centos cphttps://blog.csdn.net/2301_79693363/article/details/137720252基础指令

vim中批量化注释

ctrf+v+I+esc

1,对文件操作的本质,进程对文件的操作

2.一个文件要被访问,就必须先被打开。

一个文件被形成的时候有默认文件掩码,普通文件以666作为起始权限,666&~umask可以的到最终权限。

目录默认:777 普通文件默认666

#include<stdio.h>
#include<unistd.h>
#include<string.h>#define FILE_NAME "log.txt"int main()
{//r,w,r+(对文件进行读写操作,不存在则报错),w+(读写,不存在则创建),a(append,追加),a+()//FILE* fp=fopen(FILE_NAME,"a");//if(fp==NULL)//{//    perror("fopen");//    return 1;//}//////int cnt =5;//while(cnt)//{//    fprintf(fp,"%s:%d\n","hello file",cnt--);//}//fclose(fp);return 0;
}

对文件进行一些基础操作。

O_WRONLY|对文件进行写入

O_CREAT,0666   控制文件的权限

|O_TRUNC   每次以写的形式打开文件,文件对自动清空

O_APPEND   追加

文件操作的本质:进程和被打开文件的关系。

一个进程可以打开多个文件,系统中存在大量被打开的文件,被打开的文件会被OS管理起来,

管理的形式为先描述在组织,操作系统为了管理对应的打开文件,会为文件创建对应的内核数据结构标识文件,struct_file{}中包含了文件的大部分属性。

三个标准输入输出流:

stdin:->键盘

stdout:->显示器

stderr:->显示器

./myfile
stdin->fd: 0
stdout->fd: 1
stderr->fd: 2
fd:3

stdin:->键盘

stdout:->显示器

stderr:->显示器         默认占用文件描述符的0,1,2其他文件从3开始

FILE* fp=fopen();

FILE是一个结构体,结构体中必有一个字段->文件描述符。

进程的文件描述符表:

struct file* fd array[]

进程文件描述符表。

 文件描述符的本质是数组下标。

#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<assert.h>#define FILE_NAME(number)"log.txt"#numberint main()
{printf("stdin->fd: %d\n",stdin->_fileno);printf("stdout->fd: %d\n",stdout->_fileno);    printf("stderr->fd: %d\n",stderr->_fileno);umask(0);int fd0 = open(FILE_NAME(1),O_WRONLY|O_CREAT|O_APPEND,0666);//int fd=open(FILE_NAME,O_WRONLY|O_CREAT|O_TRUNC,0666);//if(fd<0)//{//    perror("open");//    return 1;//}printf("fd:%d\n",fd0);close(fd0);//r,w,r+(对文件进行读写操作,不存在则报错),w+(读写,不存在则创建),a(append,追加),a+()//FILE* fp=fopen(FILE_NAME,"a");//if(fp==NULL)//{//    perror("fopen");//    return 1;//}//////int cnt =5;//while(cnt)//{//    fprintf(fp,"%s:%d\n","hello file",cnt--);//}//fclose(fp);return 0;
}

http://www.hkea.cn/news/232404/

相关文章:

  • 深圳住建局官方网站seo网站关键词优化快速官网
  • 网站建设需要php吗企业的互联网推广
  • 苏中建设集团官方网站电商软文广告经典案例
  • 网站开发需要什么开发工具代做百度首页排名价格
  • 北京网站设计多少钱微信引流推广
  • 网站建设实施背景分析百度指数里的资讯指数是什么
  • 小程序定制开发深圳公司网站的优化seo
  • 构建一个网站域名查询平台
  • 蚌埠网站关键词优化推广下载
  • 看房地产的app在哪看aso安卓优化
  • 网站与域名的区别扬州整站seo
  • 哪些网站可以进行域名注册公司关键词seo
  • 如何申请一个网站 做视频百度小说搜索热度排行榜
  • 天津做网站选择津坤科技b重庆seo教程搜索引擎优化
  • 什么网站做热能表好百度一下电脑版首页网址
  • 点击图片直接进入网站怎么做如何使用免费b站推广网站
  • 手机网站建设软件怎么在百度上做广告推广
  • 南京做网站团队手机app免费制作平台
  • 17173游戏网搜索优化指的是什么
  • 公司做网站需要给百度交钱吗百度竞价推广方案
  • 网站建设的关键seo推广小分享
  • 写小说的小网站百度关键词排名优化
  • 制作网站的成本规划公司如何建立网站
  • html语言做网站石嘴山网站seo
  • 做最好的言情网站官网seo优化
  • 云南建设监理协会网站营销失败案例分析
  • 怎么样做淘宝优惠券网站搜索引擎营销的优缺点
  • wordpress动态订单seo社区
  • 网站域没到期不能续费吗google谷歌搜索
  • 厦门好的做网站公司网络营销推广方式都有哪些