
Linux 基础
/
山上一缕烟
这个作者很懒,什么都没留下…
展开
-
【2022-01-23】Linux 下编译 Python 并安装后,pip install 总是提示 SSLError 并安装失败的解决办法
There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available.原因:依赖没有安装完全。解决办法:sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi原创 2022-01-23 14:52:36 · 1304 阅读 · 0 评论 -
【Linux编程基础 · 信号(二)】请利用 setitimer() 和 sigaction() 函数编写一个小游戏,该游戏随机在 5 ~ 15 秒之内开始,开始后随机从 ‘w’, ‘s’, ‘a’,
题目请利用 setitimer() 和 sigaction() 函数编写一个小游戏,该游戏随机在 5 ~ 15 秒之内开始,开始后随机从 ’w’, ‘s’, ‘a’, ‘d’ 中选取 4 个字母显示在屏幕上,玩家需要迅速正确键入字母并回车以赢得并退出游戏,否则 3 秒后游戏将重新选取 4 个字母显示,无穷地循环下去。点拨源代码#include <chrono>#include <cstdio>#include <cstring>#include <fc原创 2021-05-22 11:48:58 · 196 阅读 · 6 评论 -
【Linux 编程基础 · 进程间通信 · 命名管道 · 消息队列】众所周知,网络游戏有服务端与客户端,客户端需要发 “消息” 给服务端,请使用 “命名管道” 模拟以下服务端和客户端的功能
题目众所周知,网络游戏有服务端与客户端,客户端需要发 “消息” 给服务端,请使用 “命名管道” 模拟以下服务端和客户端的功能。客户端:接收4种输入‘w’、’s’、’a’、’d’ 键,他们分别对应了上、下、左、右移动,将接收的输入作为 “消息” 发送给服务端。服务端:每隔一秒打印角色的坐标 (x, y),初始坐标为 (0, 0),服务端在接收到客户端的 “消息” 过后,重新计算角色的坐标。其中向上 y 加 1,向下 y 减 1,向左 x 减 1,向右 x 加 1。源代码Client:#includ原创 2021-05-22 10:53:30 · 273 阅读 · 1 评论 -
【Linux 编程基础 · 信号(一)】众所周知,游戏都有暂停功能,请利用 fork() 函数创建父子进程,其中一个隔一秒打印一段文字(模拟运行的游戏),另外一个接收键盘的输入,并发送信号暂停与继续游
题目众所周知,游戏都有暂停功能,请利用 fork() 函数创建父子进程,其中一个隔一秒打印一段文字(模拟运行的游戏),另外一个接收键盘的输入,并发送信号暂停与继续游戏(例如可以按 ’s’ 键暂停,按 ’c’ 键继续)。提示:1) 自行思考父子进程中,哪个模拟游戏,哪个接收输入并发送信号。2) 自行查找发送什么信号 “暂停”,什么信号 “继续”。源代码#include <iostream>#include <signal.h>#include <unistd.h>原创 2021-05-22 10:50:11 · 347 阅读 · 1 评论 -
【Linux 编程基础 · 多进程实验(三)】利用fork()创建3个子进程:第1个子进程打印“Hello World”;第2个子进程计算2的8次方,并且打印结果;第3个子进程尝试打印5/0的结果。父
题目利用 fork() 创建 3 个子进程:第 1 个子进程打印 “Hello World”;第 2 个子进程计算 2 的 8 次方,并且打印结果;第 3 个子进程尝试打印 5 / 0 的结果。父进程利用轮询方法非阻塞式地等待 3 个子进程结束,并且打印子进程的结束信息。点拨waitpid() 等待一个指定的进程或进程组的状态改变。默认情况下,它只在指定的进程(组)被终止后返回。可以通过传递相应的参数来改变其行为。该函数返回状态改变的子进程 ID。若出错,返回 -1。如果指定了参数(宏)WNOHANG原创 2021-05-22 10:47:54 · 2909 阅读 · 0 评论 -
【Linux 编程基础 · 多进程实验(二)】利用 fork() 创建 10 个子进程,每个子进程打印自己的 PID,父进程阻塞式地等待每个子进程结束并回收,然后打印该子进程的 PID。
题目利用 fork() 创建 10 个子进程,每个子进程打印自己的 PID,父进程阻塞式地等待每个子进程结束并回收,然后打印该子进程的 PID。源代码#include <iostream>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h>using namespace std;const size_t CHILDREN_COUNT = 10;int main()原创 2021-05-22 09:17:35 · 1626 阅读 · 0 评论 -
【Linux 编程基础 · 多进程实验】请利用 fork() 函数创建 8 个进程,这些进程具有以下关系,最后在每个进程中打印自己的 PID 作为输出结果。
题目请利用 fork() 函数创建 8 个进程,这些进程具有以下关系,最后在每个进程中打印自己的 PID 作为输出结果。点拨注意:在条件语句的动作范围内,除非立刻运行到 main() 的返回语句,否则,需要return 0;来让执行完毕的父进程代码或子进程代码立刻结束。父进程会创建多个子进程,但是在不出错的情形下,每次 fork() 的返回值都会大于 0。这时候任选一个大于 0 的返回值,并根据返回值来执行父进程的动作,避免重复执行。在其中一个子进程创建出错时,可以在报告错误后不立即返回,原创 2021-05-22 09:10:40 · 638 阅读 · 0 评论 -
【Linux 编程基础】常见的系统调用
问题1编写一个c程序,判断一份属于当前用户的文件是否可读可写,如果不可读或不可写则将其修改为可读可写。#include <fcntl.h>#include <stdio.h>#include <sys/stat.h>#include <unistd.h>int main(int argc, char** argv) { switch (argc) { default: puts("Argument ERROR\nU原创 2021-04-09 09:59:58 · 199 阅读 · 0 评论 -
【Linux 编程基础】makefile的综合应用-实例
问题1模拟一个自动寻路机器人。假设有一个10*10的网格地图,最左上角的坐标为(0,0),最右下角为(9,9),在左上角(0,0)坐标处生成机器人,机器人只有两个动作:向下走down()和向右走right()。每次随机生成一个终点(h,w),打印机器人从(0,0)走到(h,w)的路线(自己决定机器人的行走路线)。例如:随机生成的终点是(2,3)输出(0,0),(0,1),(0,2),(0,3),(1,3),(2,3)要求:1)向右走写成一个函数放在right.c文件里,向下走写成一个函数放在原创 2021-04-09 09:41:03 · 259 阅读 · 0 评论 -
shell 编程练习:猜数
请利用Shell编程编写一个猜数字游戏,首先生成一个1~100的随机数,然后用户输入一个数,告诉用户输入的数是大于、小于或等于随机数,直到用户猜对(输入数等于随机数)就结束程序。提示:1)接收用户输入使用read命令。2)随机数可以直接访问自带的系统变量RANDOM得到,其值为0~32767之间的随机数。let a=RANDOM%101+1x=0while [ $x -ne $a ]do echo Enter the number you guess: read xdone原创 2021-03-26 21:40:31 · 639 阅读 · 0 评论 -
shell 编程练习:编写一个Shell脚本,该脚本可以将一个文件的文件名中的数字删掉
编写一个Shell脚本,该脚本可以将一个文件的文件名中的数字删掉。#!/bin/bashecho "Enter a filename:"read FileNamenewFileName=""i=0while [ $i -lt ${#FileName} ]do char=${FileName:i:1} if [[ $char =~ [^0-9] ]]; then newFileName=$newFileName$char fi let i=i+1原创 2021-03-26 21:39:03 · 777 阅读 · 0 评论 -
shell 编程练习:编写一个Shell脚本,该脚本接收一个字符串s,输出名字中含有s的进程
编写一个Shell脚本,该脚本接收一个字符串s,输出名字中含有s的进程#!/bin/shecho "Enter a string:"read secho "Processes whose name includes "$s":"ps aux | grep $s原创 2021-03-26 21:34:44 · 500 阅读 · 0 评论 -
在 VMWare Player 中创建虚拟机后,将单文件磁盘转换为多文件磁盘
https://kb.vmware.com/s/article/2006898VDDK 下载地址:https://code.vmware.com/web/sdk/7.0/vddk转载 2021-03-25 21:38:53 · 732 阅读 · 0 评论 -
【Linux 基础】在 Visual Studio Code 中使用 clang-format 扩展来自动修正代码格式
1、安装扩展插件 Clang-format,以便能在 Code 下使用 clang-format。2、在终端下,输入:sudo apt-get install clang-format安装 clang-format。3、在 Code 打开的文件夹下,新建一个文件.clang-format4、在文件中根据https://clang.llvm.org/docs/ClangFormatStyleOptions.html的教程编辑文件。教程中的一些属性似乎无法被识别。我这里有一份已经可以正常被识原创 2020-06-15 18:27:26 · 1847 阅读 · 0 评论 -
【官方教程】在 Linux 环境下配置 Visual Studio Code C / C++ 编程用的 task.json 、 launch.json 和 c_cpp_properties.json
打开 VSCode ,安装 C / C++ 的扩展后,按如下网页的教程操作:https://code.visualstudio.com/docs/cpp/config-linux转载 2020-06-02 15:40:22 · 822 阅读 · 0 评论 -
在 VMWare Workstation Player 中创建 Linux(Debian 为例)虚拟机并安装 VMWare Tools(用于虚拟机与主机共享剪贴板)、配置软件仓库(方便安装常用软件)
1、到 Debian.org 的镜像选择页面(或其它页面)选择官方站点或任意一个镜像站点下载其中一个版本。我选的是 https://mirror.xtom.com.hk/debian-cd/10.4.0/amd64/iso-bd/ 中的 debian-edu-10.4.0-amd64-BD-1.iso 。下载完毕后,如果安装了 7-zip 或类似软件,通过计算哈希来校验文件。7-zip 安装后可以通过右键菜单的 CRC SHA 一项来验证哈希值:将需要验证的哈希值与镜像网站上提供的哈希值对比,如果相同则原创 2020-06-02 15:35:47 · 1062 阅读 · 0 评论 -
如何在 Debian 上安装 Visual Studio Code (VS Code)
Visual Studio Code 简称 VS Code 是 Microsoft 开发的免费开源跨平台代码编辑器。 它具有内置的调试支持,嵌入式 Git 控件,语法高亮,代码完成,集成终端,代码重构和代码片段。 可以使用扩展来扩展 Visual Studio 代码功能。本教程介绍如何在 Debian 系统上使用 apt 命令通过软件源安装 VS Code 代码编辑器。提要如果遇到权限问题,在拒绝执行的命令前添加“sudo”前缀,回车后输入root用户的密码即可执行。在Debian上安装VS Cod转载 2020-06-01 20:49:52 · 7803 阅读 · 0 评论