popen与systme函数

popen与systme函数

popen与system在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信。system()、popen()给我们处理了fork、exec、waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可。 popen函数函数介绍(1)popen()会调用fork...

修改Ubuntu用户名和主机名

修改Ubuntu用户名和主机名

Ubuntu下更改用户名和主机名1.更改主机名(1) 修改hostname文件1sudo vim /etc/hostname 修改里面内容为新的主机名 (2) 修改hosts文件1sudo vim /etc/hosts 修改原来的名字为新的主机名 2. 更改用户名(1) 修改sudoer文件(建议在管理员权限下修改,不然无法修改)我们为自己要改的名字提前赋予较高的权限,...

进程创建

进程创建

1.进程创建 fork—通过复制调用进程创建一个新的子进程: 复制(pcb—代码共享,数据独有)—程序计数器(运行位置也一样) 返回值:父进程返回子进程的pid,子进程返回0 写时拷贝技术 vfork—创建子进程,共用同一个虚拟地址空间,为了防止调用栈混乱,因此父进程调用vfork会阻塞,阻塞到子进程退出或者子进程程序替换,开辟内存创...

僵尸进程与孤儿进程

僵尸进程与孤儿进程

1、僵尸进程什么是僵尸进程?处于僵死状态的进程—–(危害)会造成资源泄漏 僵尸进程的产生原因子进程先于父进程退出,因为要保留退出原因,因此操作系统不能直接释放所有资源,通知父进程获取退出原因,允许操作系统释放资源,但是父进程没有关注这个通知导致子进程退出后无法释放所有资源,处于僵死状态成为僵尸进程。 解决方法1.进程等待2.结束父进程 模拟实现12345678910111...

排序方法总结

排序方法总结

插入排序1.基本思想把待排序的记录按其大小逐个插入到一个已经排序好的有序序列中,直到所有的记录插入完为止,从而得到一个有序序列。 2. 过程当插入第i(i>=1)个元素时,a[0],a[1],…,a[i-1]已经排好序,用a[i]的值与 a[i-1],a[i-2],…的值顺序进行比较,找到插入位置即将a[i]插入,原来位置上的元素顺序后移。 3.特性总结 元素集合...

进程概念

进程概念

1.进程概念:冯诺依曼体系—现代计算机硬件体系结构 输入设备:键盘 输出设备:显示器 存储器:内存 运算器:CPU-中央处理器 控制器: 输入设备—>存储器—>输出设备 || CPU 所有的硬件都是围绕存储器工作硬件结构决定软件行为:操作系统 操作系统的目的:方便用户,让计算机更加好用...

ROS学习笔记(二)

ROS学习笔记(二)

一、ROS的节点1.前期准备:安装虚拟包$sudo apt-get install ros-kinetic-tutorials 2.ROS概念(英文原版)Nodes(节点): A node is an executable that uses ROS to communicate with other nodes.Messages(消息): ROS data type u...

结构体自定义类型总结

结构体自定义类型总结

一、创建结构体1、结构体是是一些值的集合,这些值被称为成员变量。2、结构体内的成员可以是不同类型的成员变量。3、创建结构体 12345struct S{ //结构体名称 int a; //内部成员 char b; //内部成员 double c; //内部成员}; 4、结构体内部成员的访问:(1)结构体...

String库函数部分实现

String库函数部分实现

1.实现strcpy123456789void *Strcpy(char *des ,char *src){ assert(des); assert(src); char *tmp = des; while (*des++ = *src++); des = tmp; return des;} 2.实现strcat12345678910void *Str...

Linux常用工具

Linux常用工具

Linux常用工具环境:CentOS7工具:yum,vim,GBD,Makefile, yumyum: 软件包管理工具查看软件包 yum list安装软件包 yum install package_name移除软件包 yum remove package_name vim编辑器因为vim中默认不能输用鼠标,因此为了完成能够插入,删除,复制,粘贴各个操作,vim将操作分为...

×
  • {title}