首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

CC++程序员 面试经历总结

答: 共享内存 管道 信号量 消息队列 信号 套接字 # 管道( pipe ):管道是一种半双工通信方式,数据只能单向流动,而且只能在具有亲缘关系进程间使用。...进程亲缘关系通常是指父子进程关系。 # 有名管道 (named pipe) : 有名管道也是半双工通信方式,但是它允许无亲缘关系进程间通信。...# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同是,它可用于不同及其间进程通信。...答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中名字与C语言不同。...10、MFCSTL中均有Hash表类模板,请说明其包含函数(不要求写出实际具体函数名称),说明其功能即可。

2.2K31

进程间通讯(三).signal

前言 UNIX/Linux 是多任务操作系统,通过多个进程分别处理不同事务来实现,如果多个进程要进行协同工作或者争用同一个资源时,互相之间通讯就很有必要了 进程间通信,Inter process...,并且不能带参数,第一个整型信号会被当作参数传给第二个函数 这个函数返回值也是一个函数地址,其实就是第二个函数地址 void ( *signal( int sig, void (* handler)...if(0 == kill(ppid,sig)) //父进程发送指定信号,在这里kill并不是杀死意义,而是发送信号意义 { printf("A:sent %d signal..., the signal is 40 B:sent 9 signal to 17082 emacs@ubuntu:~/c$ 编译执行过程中没有报错,从结果来看,符合预期 ---- kill 在 signal.h...---- 总结 以下函数可以进行有名管道创建 signal kill pause 通过各方面资料弄懂其参数意义返回值类型,是熟练掌握基础 原文地址

1.5K10

linux c程序中获取shell脚本输出

但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出结果。例如,执行外部命令ping后,如果执行失败,我们希望得到ping返回信息。 2....使用匿名管道   在>一书中给出了一种通过匿名管道方式将程序结果输出到分页程序例子,因此想到,我们也可以通过管道来将外部命令结果同应用程序连接起来。...增强system函数,能够返回system调用输出   *   * @param[in] cmdstring 调用外部程序或脚本命令串   * @param[out] buf 返回外部命令结果缓冲区...w确定command输入/输出方向,rw是相对command管道而言。...r表示command从管道中读入,w表示 command通过管道输出到它stdout,popen返回FIFO管道文件流指针。pclose则用于使用结束后关闭这个指针。

5.6K20

进程间通讯(四).非亲缘进程间交互信号

前言 UNIX/Linux 是多任务操作系统,通过多个进程分别处理不同事务来实现,如果多个进程要进行协同工作或者争用同一个资源时,互相之间通讯就很有必要了 进程间通信,Inter process...,O_WRONLY 等相关函数原型声明宏定义 void trigger(int signum) //定义一个触发函数,在收到信号后被调用 { printf("B:A, I have received...return res; } printf("B:my pid is %d, other process pid is %d\n",pid,opid); //打印出自己pid管道中获取另一个进程..., the signal is 40 B:sent 9 signal to 19428 emacs@ubuntu:~/c$ 编译执行过程中没有报错,从结果来看,符合预期 ---- unlink 在 unistd.h...((1)); 它所起作用就是删除文件 ---- 总结 以下函数可以进行有名管道创建和信号控制 signal kill pause mkfifo 通过各方面资料弄懂其参数意义返回值类型,是熟练掌握基础

96210

Linux工程笔记.md

否则可以直接关闭进程: 使用top命令找到进程PID 输入kill -9 PID即可关掉此进程 函数 bash中函数类似于C/C中函数,但return返回值与C/C不同,返回是exit code...如果想获取函数输出结果,可以通过echo输出到stdout中,然后通过$(function_name)来获取stdout中结果函数return值可以通过$?来获取。...echo "output = $output" echo "return = $ret" 输出结果: output = Hello yxc return = 123 函数输入参数 在函数内,1表示第一个输入参数...指定服务器端口号: scp -P 22 source1 source2 destination 注意:scp-r -P等参数尽量加在sourcedestination之前。...要点 管道命令仅处理stdout,会忽略stderr。 管道右边命令必须能接受stdin。 多个管道命令可以串联。 与文件重定向区别 文件重定向左边为命令,右边为文件。

5.4K10

构建shell脚本一文就够

用户变量 使用等号将值赋用户变量。注意,在变量、等号值之间不能出现空格!这个是初学者常见一个问题,本人也非常不太适应这个。...: command << markerdatamarker 管道 很多生信命令行工具需要提供多个输入输出参数,这用在管道命令里可能会导致非常低效情形(管道只接受一个标准输入输出)。...这里只是一个简单例子,要熟练掌握少不了平时多多研究练习。 进程替换 有些命令需要接受多个管道输入作为自己输出,这个时候普通管道已经无法完成任务了。...在bash中,在将一个数学运算结果某个变量时,可以用美元符方括号($[operator])将数学表达式围起来。...bash计算器能够识别: 数字(整数浮点数) 变量(简单变量和数组) 注释(/* */开始行) 表达式 编程语句 函数 wsx@wsx-ubuntu:~/script_learn$ bcbc 1.06.95Copyright

1.4K51

linux bash Shell脚本经典 Fork炸弹演示及命令详解

函数名称为:,主要核心代码是:|:&,可以看出这是一个函数本身递归调用,通过&实现在后台开启新进程运行,通过管道实现进程呈几何形式增长,最后再通过:来调用函数引爆炸弹。...Gif图: 看,运行一段时间后直接报出了-bash: fork: Cannot allocate memory,说明内存不足了。...与传统1v1、通过不断向服务器发送请求造成服务器崩溃不同,Fork炸弹有种坐山观虎斗,不费一兵一卒斩敌人于马下感觉。更吓人是这个函数是不需要root权限就可以运行。...看到网上有帖子说某些人将个性签名改为Fork炸弹,结果果真有好奇之人中枪,试想如果中枪的人是在公司服务器上运行的话,oh,!...我们可以通过修改/etc/security/limits.conf文件来进行更深层次预防,在文件里添加如下一行(ubuntu需更换为你用户名): ubuntu - nproc 20 这样,退出后重新登录

1.6K50

进程间通讯(一).pipe

因此,主要作为进程间以及同一进程内不同线程之间同步手段。...套接字( socket ) : 套接字也是一种进程间通信机制,与其他通信机制不同是,它可用于不同主机间进程通信。...,但是为了最佳可移植性,我们决不应预先假定系统支持全双工管道 管道只能在具有公共祖先两个进程之间使用,通常,一个管道由一个进程创建,在进程调用fork之后,这个管道就能在父进程子进程之间使用了 尽管有这两种局限性...,管道是通过调用 pipe 函数创建 下面通过一个例子,演示一下pipe管道使用方法 ---- 代码示例 要求 创建一个从父进程到子进程管道,并且父进程经由该管道向子进程传送数据 代码示例 #include...__THROW; ---- 总结 以下函数可以进行无名管道创建 pipe 通过各方面资料弄懂其参数意义返回值类型,是熟练掌握基础 原文地址

67430

xv6(19) SHELL交互程序

图示如下: 管道 管道吧使用命令时候经常用到这个机制,使用 | 来表示,管道左侧命令运行结果作为右侧命令输入。这就是管道功能,如何实现呢?...管道文件创建与其他文件创建有些不同,其他文件创建时候就是分配 $inode$ 然后安装目录项,打开时候才分配文件结构体,分配文件描述符。...反观 $Linux\ 0.11$ 这一块处理,它是为管道文件分配了 $inode$ ,各个层次分明,所以文件读写函数只需要判断 $inode$ 类型字段去调用不同读写函数就行了,使得整个代码看起来特别的漂亮...接下来还是回到 $xv6$ 管道创建上面,系统调用 $pipe$ 用来创建一个管道,它调用了另一个函数 $pipealloc$ 来分配管道文件文件结构体内存,先来看看这个函数: int pipealloc...,一个可读一个可写,指向同一个管道文件,于是乎模拟出了管道两端。

28510

pyinstaller打包成无控制台程序时运行出错(与popen冲突解决方法)

当executable参数不为空时,args里第一项被认为是“命令名”,不同于真正可执行文件文件名,这个“命令名”是一个用来显示名称,例如执行unix/linux下 ps 命令,显示出来就是这个...stdin、stdoutstderr分别表示子程序标准输入、标准输出标准错误。 可选值有PIPE或者一个有效文件描述符(其实是个正整数)或者一个文件对象,还有None。...如果把universal_newlines设置成True,则子进程stdoutstderr被视为文本对象,并且不管是unix/linux换行符(’\n’),还是老mac格式换行符(’\r’),还是...windows 格式换行符(’\r\n’)都将被视为’\n’ 。...如果指定了startupinfocreationflags,它们将会被传递给后面的CreateProcess()函数,用于指定子程序各种其他属性,比如主窗口样式或者是子进程优先级等。

3.5K30

❤️肝下25万字《决战Linux到精通》笔记,你Linux水平将从入门到入魔❤️【建议收藏】

与 /bin 不同是,这几个目录是系统管理员 root使用命令,一般用户只能”查看”而不能设置使用。...-rw-r--r-- 1 root root 22M Jan 9 16:10 disease.dmpac xargs – 参数代换 不是所有的命令都支持管道,如ls,对于不支持管道命令,可以通过...算术运算符 下表列出了常用算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 expr $a + $b 结果为 30。...' ;; esac 输入不同内容,会有不同结果,例如: 输入 1 到 4 之间数字: 你输入数字为: 3 你选择了 3 跳出循环 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环...:(10 bitwise xor 6) = 12 其他函数 函数名 说明 实例 close(expr) 关闭管道文件 $ awk 'BEGIN { cmd = "tr [a-z] [A-Z]" print

1.9K10

在 Golang 中实现一个简单Http中间件

本文主要针对Golang内置库 net/http 做了简单扩展,通过添加中间件形式实现了管道(Pipeline)模式,这样好处是各模块之间是低耦合,符合单一职责原则,可以很灵活通过中间件形式添加一些功能到管道中...这里中间件入参出参类型都是 http.Handler, 然后在 next.ServeHTTP() 前后分别输出了 In Out....w.Write([]byte("Register...")) } 最后修改程序 main 函数, 在 Login 接口上使用上面添加过中间件 Pipeline func main() {...,这本文最上面的管道流程图是一致,然后访问 Register 接口, 控制台没有输出信息,当然也不会执行任何中间件。...,用来接收添加到管道中间件,在 AddMiddlewares() 函数中,接收了多个Handle, 然后组装到 Chain 对象并返回, 接下来调用 Then() 函数, 把管道中间件业务Handler

51040

1.PS编程入门基础语法

中Shell使用类似, 但是不同是它传递数据不是文本而是对象; 管道处理模式: 1.顺序模式(较慢):在顺序模式中管道中同一时间只执行一条命令,只有当前一条命令所有执行完毕,才会把所有结果交付给下一条命令...优缺点: 比较节省内存,可能管道某个任务还在执行,但是已经有部分结果出了,减少了中间结果保存。...描述: PS 可以通过管道将对象结果转换成文本并显示在控制台上。...描述: PS数据分配一个最佳数据类型也称作“弱类型”,如果一个整数超出了32位整数上限([int32]::MaxValue),它就会分配一个64位整数数据类型;同样如果是小数,字符串,日期时间也会分配成为该对应数据类型...# 表达式 结果 # 3+6/3*4 11 # 3+6/(3*4) 3.5 # (3+6)/3*4 12 - PowerShell 计算表达式顺序可能不同于你使用其他编程脚本语言 在此示例中

20.5K20

Docker实现原理学习笔记

: 进程对信号(Signal)响应三种方式 1、忽略信号,不作任何处理,不过其中有两个不能忽略:SIGKILLSIGSTOP 2、捕捉信号,定义信号处理函数,当信号发生时,执行相应处理函数 3、...(4)数据读出写入:一个进程向管道中写内容被管道另一端进程读出。写入内容每次都添加在管道缓冲区末尾,并且每次都是从缓冲区头部读出数据。...ID号空间,换句话说:进程用户组ID在User NameSpaces内部外部可以不同,这里最有意思是:一个进程可以在User NameSpaces之外拥有一个普通非特权用户ID,同时在命名空间内拥有一个用户...:由于原本非特权进程可以在User NameSpaces内拥有root权限,因此非特权应用程序现在可以访问以前仅限于根路径,Eric Biederman 为使User NameSpaces实现安全正确付出了很多努力...首先是第一部分 添加描述 导入了四个模块,分别fmt,os,os/exec,syscall,其中最重要就是syscall 添加描述 在main函数中,使用Switch来判断接收控制台第一个参数是不是

37220

【整理】Redis安装配置专题

Redis是一个内存数据库,但在磁盘数据库上是持久,因此它代表了一个不同权衡,在这种情况下,在不能大于存储器(内存)数据集限制下实现非常高读速度。         ...管道意义     管道基本含义是,客户端可以向服务器发送多个请求,而不必等待回复,并最终在一个步骤中读取回复。 示例 要检查Redis管道,只需启动Redis实例,并在终端中键入以下命令。...在结果中,我们可以看到所有命令都提交到Redis一次,Redis在一个步骤中提供所有命令输出。 管道好处     这种技术好处是大大提高了协议性能。...假设有四个Redis实例:R0,R1,R2,R3以许多代表用户键,如user:1,user:2,…等等。 范围分区     范围分区通过将对象范围映射到特定Redis实例来实现。...哈希分区     在这种类型分区中,使用散列函数(例如,模函数)将键转换成数字,然后将数据存储在不同Redis实例中。

27240

使用Linux开发相关配置:tldr | 分屏操作 | 管道

使用方法man一样,比如查看tar命令用法: tldr tar 他画风如上,虽然还是英语(不要害怕英语,这是一个程序员基本功),但是他给出了使用例子!...Linux 下程序可以协同工作,可以将一个命令/程序输出通过管道(Pipes)连接到另一个命令/程序输入,管道操作符是 |。...3.3 用sort排序输出结果 sort-u选项 在输出行中去除重复行。 sort-r选项 sort默认排序方式是升序,想改成降序,加-r。...另外,管道机制可以让命令连用 3.4 uniq命令统计输出结果 uniq命令不带任何参数会删除重复出现行 -c : 在每列旁边显示该行重复出现次数 -d : 仅显示重复出现行列 -u...: 仅显示出一次行列(没有重复) 有了这个-c选项,再配合sort就可以统计输出了 如上,表示 程序前一百行输出里0输出了12次,1输出了88次。

1.3K20

使用Linux开发相关配置:tldr | 分屏操作 | 管道

使用方法man一样,比如查看tar命令用法: tldr tar 他画风如上,虽然还是英语(不要害怕英语,这是一个程序员基本功),但是他给出了使用例子!...Linux 下程序可以协同工作,可以将一个命令/程序输出通过管道(Pipes)连接到另一个命令/程序输入,管道操作符是 |。...3.3 用sort排序输出结果 sort-u选项 在输出行中去除重复行。 sort-r选项 sort默认排序方式是升序,想改成降序,加-r。...另外,管道机制可以让命令连用 3.4 uniq命令统计输出结果 uniq命令不带任何参数会删除重复出现行 -c : 在每列旁边显示该行重复出现次数 -d : 仅显示重复出现行列 -u...: 仅显示出一次行列(没有重复) 有了这个-c选项,再配合sort就可以统计输出了 如上,表示 程序前一百行输出里0输出了12次,1输出了88次。

1.3K40

Ubuntu Server 第二章 命令行基础

第二章 命令行基础 说明,此笔记来源于苑老师Ubuntu Server入门到精通 在企业Linux Server 坏境中,经常是没有图形环境,只有一个终端窗口(黑乎乎命令行闪动提示符)。...) 前面部分命令中使用了管道符,部分笔记表示是或关系,这里介绍一些在shell命令中常用有着特殊作用符号,注意,管道管道不同概念 ”;“:连接符号,可以是命令在同一行内 "&":后台执行符号..."&&":命令逻辑与 "||":命令逻辑或 …… 还有一些不常用了 进程管理 进程就是运行中文件,使用"ps" 不加参数执行,结果默认会显示4列信息,为了区分不同进程,进程分配了ID,这就是PID...进程有不同状态,常见有"R“(Runnable)、"S"(Sleeping)等等。...参考链接 Ubuntu Server 从入门到精通 流、管道重定向 Linux4个主要部分:内核、Shell、文件结构实用工具 真正理解linuxinode?

1.2K10
领券