Linux系统下的编程
Focus5679
学生一枚
展开
-
Ubuntu18.04 云服务器 配置远程登陆Mysql数据库
环境信息:OS:Ubuntu18.04MySQL: 5.7.30-0ubuntu0.18.04.11.安装Mysql在Ubuntu中,默认情况下,只有最新版本的MySQL包含在APT软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包apt-get。#命令1sudo apt-get update#命令2sudo apt-get install mysql-server[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdw5HVlh-15893622原创 2020-05-13 17:36:58 · 563 阅读 · 4 评论 -
SIGNAL相关知识
在Linux定义的信号中,不能被忽略和捕获的信号是哪两个?这样设计的目的是什么?SIGKILL和SIGSTOP不能被忽略原因:因为它们向超级用户提供了一种进程终止的可靠方法。信号的产生的条件信号的产生的条件有哪些?1.当用户按某些终端键时,将产生信号。ctrl+c组合键:产生中断信号 SIGINTctrl+\组合键:产生中断信号 SIGQUITctrl+z组合键:产生中断信号SIGSTOP2.硬件异常将产生信号。除数为0,无效的内存访问等。这些凊况通常由硬件检测到,并通知内核原创 2020-05-09 11:26:39 · 310 阅读 · 0 评论 -
SIGNAL相关函数
#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int signum)功能:给指定进程发送信号参数:pid:pid>0:将信号传送给进程ID为pid的进程pid=0:将信号传送给当前所在进程组中的所有进程pid=-1:将信号传送给系统内所有进程pid<-1将信号传给指定进程组|pid|的所有进程。signum:信号编号返回值:成功返回0,失败返回-1#原创 2020-05-09 11:25:06 · 250 阅读 · 0 评论 -
管道通信习题
1.编程实现命名管道通信,进程a向进程b每隔3秒发送字符串”hello world”实现思路: 利用进程从管道读数据时若没有其他进程进行写数据,那么进程会阻塞这一原理。实现write进程只要定时(3s)向管道内写数据,read进程就会在管道内有数据后读出数据并显示。 当关闭write进程后,read进程不会再阻塞,此时会不停地从管道中读出空数据,所以判断当从管道内读出空数据时,read进程退...原创 2020-04-30 18:55:26 · 428 阅读 · 0 评论 -
IPC(进程间通信)——管道通信
1.什么是进程间通信? 进程是一个独立的资源分配单元,不同进程之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。 然而,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递登,因此需要进程间通信。 简言之,进程间通信是实现多进程配合工作的方式与手段。2.进程间通信的功能包括什么?并简单描述。数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多...原创 2020-04-30 18:48:38 · 250 阅读 · 0 评论 -
多进程编程习题
1.循环创建100个子进程fork.c#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <stdlib.h>int main(){ int i; int num = 1; pid_t pid = getpid(); fo...原创 2020-04-30 18:45:11 · 988 阅读 · 0 评论 -
进程状态,守护进程,孤儿进程,僵尸进程,全缓冲/行缓冲
1.描述一下进程的三个状态,以及相互转换就绪态:进程所需的资源已经全部准备好,等待系统调度进入执行态。执行态:进程占用CPU资源运行进程,进程运行结束或时间片用尽或缺少资源时会退出执行态等待态:进程需要资源没有全部就绪,进程进入等待态进行等待,当所有资源全部就绪时进入就绪态。进程状态转换:2.进程控制块 PCB PCB(Progress Control Block:进程控制模块)...原创 2020-04-30 18:43:13 · 309 阅读 · 0 评论 -
使用C标准库函数/Linux系统调用实现copy指令
#include<fcntl.h>#include<stdio.h>#include<unistd.h>#include<string.h>int main(int argc, char *argv[]){ int srcfd, desfd; int count; char srcPath[50] = "./";...原创 2020-04-30 18:38:24 · 445 阅读 · 0 评论 -
动态库的制作与链接
测试代码://zsw.hextern int add(int x, int y);extern int sub(int x, int y);//zsw.cint add(int x, int y){ return x+y;}int sub(int x, int y){ return x-y;}//zsw_main.c#include<stdio.h&g...原创 2020-04-30 18:36:25 · 194 阅读 · 0 评论 -
gcc与gdb工具使用,静态库与动态库的构建与使用
1.gcc命令的常用选项:1)列出这些常用选项的作用:选项功能-o [file]指定生成的输出文件名为file-E只进行预处理-S只进行预处理和编译-c只进行预处理,编译和汇编-Wall生成所有级别的警告信息-w关闭所有警告-O[0-3]指定编译器优化级别,0为不优化;3优化等级最高-include [file]包含...原创 2020-03-31 09:25:48 · 325 阅读 · 0 评论 -
Linux下gdb调试常用知识总结
1.若想进行gdb调试,在编译时需选择添加调试信息g++ -g main.cpp -o helloworldg++ -c -g main.cpp -o main.o2.启动gdb调试gdb program ///最常用的用gdb启动程序,开始调试的方式gdb program core ///用gdb查看core dump文件,跟踪程序core的原因gdb p...原创 2018-10-23 17:04:00 · 433 阅读 · 0 评论 -
Linux下Makefile文件常用知识总结
1.Makefile文件命令的使用一般有两种用法#1make#2make command第一种用法会自动执行Makefile中的所有指令,第二种用法会执行Makefile中的指定指令。2.Makefile文件命令的一般写法目标: 依赖项1 依赖项2(tab)命令1(tab)命令2(tab)......例如:helloworld: main.cpp...原创 2018-10-21 12:53:30 · 306 阅读 · 0 评论 -
vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
解决了由来已久的问题,所以分享下 原因:是虚拟机服务没有开启 解决方法:(以管理员的方式运行)点击“开始→运行”,在运行框中输入 CMD 回车打开命令提示符,然后依次执行以下命令。net start vmcinet start vmx86net start VMnetuserifsc config vmci=autosc config vmx86=auto...转载 2018-10-10 18:17:56 · 209 阅读 · 0 评论