![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux基础
Linux常见指令、基础开发工具的使用、进程的概念、进程控制、基础I/O、进程间通信、进程信号
贪心的葡萄
算法与数据结构,计算智能,进化计算,神经网络,C/C ,linux,python,matlab
展开
-
System V消息队列实现进程间通信
System V消息队列实现进程间通信#ifndef __12_MSG_HPP__#define __12_MSG_HPP__#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#in原创 2022-03-15 17:50:53 · 221 阅读 · 0 评论 -
System V共享内存实现进程间通信
System V共享内存实现进程间通信#ifndef __11_SHM_HPP__#define __11_SHM_HPP__#include<iostream>#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#include<stdlib.h>#include<string.h>#include<unistd.h>using na原创 2022-03-11 19:00:44 · 367 阅读 · 0 评论 -
mkfifo命名管道+fork实现文件拷贝
mkfifo命名管道+fork实现文件拷贝头文件及全局变量与函数定义#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<sys/wait.h>#include<fcntl.h>#include<string.h>const char *tp原创 2022-03-10 17:24:15 · 336 阅读 · 0 评论 -
fork+waitpid+fread读文件
fork+waitpid+fread读文件#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#include<sys/wait.h>#include<unistd.h>#define BUFSIZE 1024int cat(int argc, char **argv){ if (argc != 2) {原创 2022-03-09 11:20:01 · 122 阅读 · 0 评论 -
fork+exec实现简易minishell
fork+exec实现简易minishell头文件及函数定义#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<string.h>#include<ctype.h>#define CMD_BUFFER 2014#define NULL_LINE -1原创 2022-03-08 17:06:57 · 272 阅读 · 0 评论 -
Linux常见指令以及权限理解
相关课程:操作系统、计算机网络原理、计算机组成原理操作系统的定位:操作系统是一款搞管理的软件。 (文件管理、内存管理、进程管理)OS概念、定位应用软件:word操作系统:Windows、Linux设备驱动:声卡驱动硬 件:CPU、内存、磁盘、显示器、键盘虚拟机-->网络-->桥接模式指令ls--显示当前文件-a:显示隐藏文件-l...原创 2018-07-09 19:51:38 · 212 阅读 · 0 评论 -
Linux_进程信号
1、信号基础技术应用角度的信号用户在Shell下输入命令启动一个前台进程用户按下ctrl+c,此时键盘输入产生一个硬件中断,被操作系统获取并解释成信号,发送给目标前台进程前台进程接收到信号后,进程执行退出#include<iostream>#include<unistd.h>using namespace std;int main(){ whil...原创 2020-01-18 15:45:43 · 195 阅读 · 0 评论 -
Linux_进程间通信之命名管道
命名管道命名管道的限制就是只能在具有共同祖先的进程间通信如果我们想在不相关的进程间交换数据,可以用FIFO文件来做这项工作,称为命名管道命名管道是一种特殊类型的文件创建命名管道(1)命令行方法mkfifo filename(2)程序里创建int mkfifo(const char * filename, mode_t mode);int main(){ mkfifo(...原创 2020-01-16 13:03:41 · 195 阅读 · 0 评论 -
Linux_进程间通信之匿名管道
1、进程间通信目的:数据传输:一个进程将数据发给另一个进程资源共享:多进程共享同样的资源通知事件:一个进程向另一个进程通知某事件发生,如进程终止要通知父进程进程控制:有些进程希望完全控制另一个进程的执行,如Debug进程,此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道他的状态改变分类:管道:匿名管道pipe、命名管道System V IPC:消息队列、共享...原创 2020-01-13 16:08:16 · 242 阅读 · 0 评论 -
Linux_基础I/O(二)
1、系统文件I/O系统文件I/O相关接口#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode...原创 2020-01-12 15:12:24 · 164 阅读 · 0 评论 -
Linux_基础I/O(一)
1、文件程序文件:源程序文件、目标文件、可执行文件数据文件:文本文件、二进制文件2、C语言文件接口#include <stdio.h>FILE *fopen(const char *path, const char *mode);int fclose(FILE *stream);size_t fread(void *ptr, size_t size, size_t n...原创 2020-01-10 15:52:42 · 180 阅读 · 0 评论 -
Linux_进程控制(二)
wait和waitpid#include<sys/types.h>#include<sys/wait.h>pid_t wait(int * status);//成功返回被等待进程pid,失败返回-1//参数获取子进程退出状态,不关心可设为NULLpid_t waitpid(pid_t pid, int *status, int options);/***正常...原创 2019-12-29 12:49:21 · 215 阅读 · 0 评论 -
Linux_进程控制(一)
1、进程创建(1)fork函数:从已存在进程(父进程)中创建一个新进程(子进程)#include<unistd.h>pid_t fork(void);//父进程返回子进程pid,子进程返回0,出错返回-1进程调用fork,当控制转移到内核fork代码后,内核做如下处理:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝到子进程添加子进程到系统进程列表f...原创 2019-12-28 17:48:59 · 335 阅读 · 0 评论 -
Linux_进程的概念
1、操作系统:管理软硬件资源(1)内核:进程管理、文件管理、内存管理、驱动管理(2)其他程序:库函数、Shell程序等自顶向下结构:用户:指令操作、开发操作、管理操作 用户操作接口:shell外壳、lib、部分指令 系统调用接口 操作系统:进程管理、文件管理、内存管理、驱动管理 驱动程序:网卡驱动、硬盘驱动、其他驱动 底层硬件:网卡、硬盘、其他2、系统调用和库函数(...原创 2019-12-27 10:37:47 · 238 阅读 · 0 评论