RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-177630

Beast Winterwolf's questions

Martin Hope
Beast Winterwolf
Asked: 2022-03-15 01:41:45 +0000 UTC

如何使用协程(coroutines)来判断一个函数卡住了?

  • 1

我已经彻底了解了 lua,但我不明白的最后一件事是协程。

现在摆在我面前的任务是:我的主脚本连接一个在安全环境中运行的第三方模块。攻击者不能对这个模块做任何错事,因为他没有可用的函数或变量。但他唯一能做的肮脏伎俩就是挂起:while true do end. 因此,我必须用一个带有计时器的协程包装该函数,该计时器只是倒计时几秒钟,如果在此期间该函数尚未完成,则将其杀死并抛出错误。请帮帮我。

lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2022-03-14 17:34:53 +0000 UTC

加载模块时保护 lua 环境(沙盒)

  • 2

我想安全地加载一个返回表的不受信任的 lua 模块,以便模块除了表之外没有其他副作用 - 即 使其无法执行任何功能,也无法在全局范围内更改变量。任何想法如何实现这一点?

lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2022-02-17 19:34:03 +0000 UTC

对忽略 __index 元方法

  • 1

这是一个例子:

local t1 = {a = 1}
local t2 = {b = 2}

setmetatable(t1, {__index = t2})

assert(t1.a == 1) -- true
assert(t1.b == 2) -- true

for k, v in pairs(t1) do
  print(k, v) -- печатает "a  1"
     -- не хочет печатать "b  2"
end

如何在不调用 __index 的情况下迭代表?

lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2022-02-14 05:13:00 +0000 UTC

如何在选择编辑器中指定编辑器的路径?

  • 0

我想让Textadept成为 Xubuntu 中的默认编辑器 - 视觉和终端。

所以我下载了它并解压到/opt.

然后我为 c 创建了一个启动器/opt/textadept/textadept并将其与 c 关联text/plain,因此它thunar使用此编辑器打开文本文件。这里没有问题。

现在我还需要将mc他视为编辑,我不知道该怎么做。

当我运行sudo select-editoror命令sudo update-alternatives --config editor时(似乎它们没有什么不同),我可以在那里选择,例如nano,mc并将使用nano,但我不知道如何指定我自己的。

我试图从 to 创建一个符号链接/opt/textadept/textadept-curses,/bin/editor现在该命令editor没有运行nano,但是我textadept的,但mc仍然通过nano.

我也试过这个:

#!/bin/bash

E_NAME=Textadept
E_PATH=/opt/textadept/textadept-curses

sudo update-alternatives --install $E_NAME $E_PATH 1111
sudo update-alternatives --config editor
sudo select-editor

该脚本注册了我的编辑器,它出现在可用编辑器列表中,但由于某种奇怪的原因select-editor它没有选择它,它只是忽略了我的选择!

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2021-11-01 07:16:47 +0000 UTC

午夜指挥官不恢复活动面板

  • 0

如果我去MC面板中的某些路径然后退出它,那么下次我启动退出时没有光标的面板状态时,它会恢复,并且光标被重置的面板到主目录。

这种行为让我很生气!这是我不能习惯使用这个经理的唯一原因。谁曾想出退出时需要监控光标位置的想法?在什么情况下,对谁方便!?是否可以解决此问题,以便 MC 记住两个面板?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-09-03 21:44:20 +0000 UTC

SMART 诊断说驱动器是健康的,但从数据来看它已经死了

  • 2

我的电脑整体运行良好,我对磁盘没有任何抱怨,但是今天我安装了 Steam 并且其中的游戏定期崩溃,当我启动大画面模式时,硬盘停止了,然后我决定运行诊断程序这就是它所显示的:

其实steam在Linux下工作不稳定,尤其是在老硬件上,是正常现象。我只是删除它,问题就解决了。任何其他程序都运行良好,但这些数字让我感到困惑。这里说检测到2.08亿个读取错误和8.13亿个位置错误,而磁盘被认为是健康的并且状态是OK的?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-08-14 19:11:57 +0000 UTC

端口打不开

  • 0

TP-Link 路由器型号 TL-WR741N/TL-WR741ND

IP 地址192.168.0.101与计算机的 MAC 地址绑定。

在这里我添加了端口:

截屏

然后我启动 http-server 并且可以在 LAN 地址访问它而没有问题:127.0.0.1:8000和192.168.0.101:8000.

现在,我去 2ip.ru,在那里复制我的外部 IP 地址,添加 :port 到它,它对我有用,但91.223.136.211:8000这个地址不起作用!港口关闭。

以前,在其他提供商上,我多次做过同样的事情,从未遇到过类似的问题!它通常可以取决于提供者吗?如果可以,该怎么办?谢谢你。

маршрутизация
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-06-01 04:09:08 +0000 UTC

如何从具有不确定数量参数的函数内的多个函数中获取所有多个结果?

  • 2
function spam()
  return 1, 2, 3
end

function collectSpam(...)
  print(...)
end

--- почему-то печатает 1,1,1,2,3 вместо 1,2,3,1,2,3,1,2,3
collectSpam(spam(), spam(), spam())
lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-03-01 00:49:54 +0000 UTC

如何在 VSCode 中将一个长字符串拆分为多个?

  • 0

请告诉我这样的 VSCode 设置或插件,以便您可以将长行(其长度超过 editor.ruler)分成几行,就像 Geany 所做的那样:

例子

visual-studio-code
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-01-21 01:35:32 +0000 UTC

如何将元方法添加到已经包含元表(并且该元表本身)的表中?

  • 1

我正在研究 lua 中的元表,现在我有这样一个任务:有一个t带有字段pos和的表size,它们分别是两个数字的数组 -[x, y]和[width, height]。实际上,没有t.x/ ,但我想实现某种语法糖,以便/t.y可以访问表。这是我的做法:t.xt.y

local t = {
  pos = {2, 4},
  size = {8, 16}
}

setmetatable(t, {
  __index = function(table, key)
    if key == "x" then return table.pos[1]
      elseif key == "y" then return table.pos[2]
      elseif key == "w" then return table.size[1]
      elseif key == "h" then return table.size[2]
    end
  end,
  __newindex = function(table, key, value)
    if key == "x" then table.pos[1] = value
      elseif key == "y" then table.pos[2] = value
      elseif key == "w" then table.size[1] = value
      elseif key == "h" then table.size[2] = value
    end
  end
})

print(t.x) -- 2
t.x = 222
print(t.pos[1]) -- 222

...一切都很好!我对上面的代码没有任何问题,但是当我尝试使用 OOP 在我的代码中实现这个方案时,问题就开始了。如您所知,lua 中没有开箱即用的 OOP,但有一些方法可以使用元方法自己实现。为了不重复造轮子,我拿了现成的Classic库。很简单(表面上看),不到100行代码,你可以看一下源码。

实际上,我对此感到困惑:我有一个“类”(实际上是库中的一个表,其中的字段__index就是它本身);“类”有一个扩展方法,它创建自己的副本,添加方法、元方法,并将自己分配为该副本的元表。现在我有一个这样的类的实例。我不知道如何附加上面显示的内容。如何在没有我参与的情况下将您的元方法分配(添加)到已经自动创建元方法的表。

下面是使用 OOP 的示例代码。他是个工人!我设法做我想做的事,但是 Classic 库的功能被破坏了,因为我覆盖了现有的 metamethod __index。

local Object = require "classic"

local T = Object:extend()

function T:new()
  self.pos = {2, 4}
  self.size = {8, 16}
  setmetatable(self, {
    __index = function(table, key)
      if key == "x" then return table.pos[1]
        elseif key == "y" then return table.pos[2]
        elseif key == "w" then return table.size[1]
        elseif key == "h" then return table.size[2]
      end
    end,
    __newindex = function(table, key, value)
      if key == "x" then table.pos[1] = value
        elseif key == "y" then table.pos[2] = value
        elseif key == "w" then table.size[1] = value
        elseif key == "h" then table.size[2] = value
      end
    end
  })
end

local t = T()

print(t.x) -- 2
t.x = 222
print(t.pos[1]) -- 222
print(t:is(Object)) -- error! функционал Classic нарушен!

很抱歉,这个问题变得相当混乱和令人困惑。我的问题是我很困惑。

UPD:我试图self.__index()在我的新函数中添加__index(),希望先执行旧函数,然后执行新函数,但一切都比我想要的复杂,结果我得到堆栈溢出:)

ооп
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-01-04 11:50:21 +0000 UTC

luacheck 不识别标准的 lua 全局变量和方法

  • 1

当我在我的项目上运行 luacheck 时,它给了我数百条关于无法识别的全局变量的警告。以下是此类警告的示例:

accessing undefined variable _G
mutating non-standard global variable _G
accessing undefined variable pairs
accessing undefined variable ipairs
accessing undefined variable math
accessing undefined variable assert
accessing undefined variable print

......等等无止境。粗略来说,luacheck 根本不明白 lua 是什么,我也不输入,这是 bug 还是特性!?我应该如何调整以防止这种情况发生?

原则上,我可以通过将整个排除列表添加到 .luacheckrc 来解决这个问题,但这显然是一个 hack。

lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-03-17 06:03:45 +0000 UTC

如何删除包裹,忽略丢失的包裹?

  • 1

我正在编写一个脚本来为自己自动配置 Manjaro,但遇到了一个问题:

如果我需要安装软件包,我运行以下命令:

sudo pacman -Syu --需要的包列表

结果,如果已经安装了其中一个包,那么没关系,安装仍然会完成。

但我不明白如何编写类似的卸载命令,以便删除列表中的所有包,即使此列表包括已删除或尚未安装的包,这样就不会出现“这样的包是未找到”。

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-02-04 15:22:05 +0000 UTC

如何制作在特定桌面上启动程序的启动器?

  • 4

我希望在分配给它们的单独工作场所上启动各种后台应用程序,例如服务器。有可能这样做吗?

linux
  • 2 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-11-24 11:22:55 +0000 UTC

Linux 启动错误

  • 4

加载 Xubuntu 18.04 时,一条红线 (FAILED) 开始滑落。这种情况发生得如此之快,以至于我不得不为屏幕拍照,但我在日志中没有找到它。我使用系统没有问题,但我想更正错误。

它说我应该跑去systemctl status systemd-tmpfiles-setup.service找出错误的详细信息,实际上它们是:

● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2018-11-24 05:04:49 EET; 2min 24s ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 526 ExecStart=/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=1/FAI
 Main PID: 526 (code=exited, status=1/FAILURE)

Nov 24 05:04:49 MAINFRAME systemd[1]: Starting Create Volatile Files and Directories...
Nov 24 05:04:49 MAINFRAME systemd-tmpfiles[526]: Unsafe symlinks encountered in /var/lib/colord/icc, refusing.
Nov 24 05:04:49 MAINFRAME systemd-tmpfiles[526]: Unsafe symlinks encountered in /var/lib/systemd/coredump, refusing.
Nov 24 05:04:49 MAINFRAME systemd[1]: systemd-tmpfiles-setup.service: Main process exited, code=exited, status=1/FAILURE
Nov 24 05:04:49 MAINFRAME systemd[1]: systemd-tmpfiles-setup.service: Failed with result 'exit-code'.
Nov 24 05:04:49 MAINFRAME systemd[1]: Failed to start Create Volatile Files and Directories.

这些日志并没有告诉我太多。可能需要用真实路径替换符号链接?但我没有创建这些符号链接。你永远不知道它们是干什么用的。

UPD:我刚刚经历了这些路径 - /var/lib/colord/icc,/var/lib/systemd/coredump结果发现这些是普通的空文件夹,而不是符号链接。所以我不知道他想从我这里得到什么。

UPD:谷歌搜索了这个错误,这就是我发现的- 似乎有人设法用命令解决了同样的问题chown root.root /,但它没有帮助我。

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-09-30 02:44:20 +0000 UTC

如何杀死Linux中最重的进程?

  • 0

有时,当我运行一些厚重的应用程序(通常是游戏)时,它会耗尽所有可用的 RAM(通常是由于泄漏或端口弯曲)。同时,滞后开始,因此即使鼠标实际上也停止响应,唯一的出路是重新启动。我有一个交换,但感觉它没有一点用处。我分配了一个键盘快捷键来调用任务管理器,但是当可用内存为零时,它要么根本不打开,要么由于滞后而无法在其上使用 alt-tab。其实这不是什么大问题,这种情况也不会经常发生,但是我还是想问一下有没有人知道一种方法可以用一个命令杀死占用最多内存的进程?谢谢你。

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-09-06 00:45:09 +0000 UTC

如何在 Linux 中更改多个文件的关联?

  • 1

目前我安装了 2 个我使用的文本编辑器 - Code 和 Sublime。我用作 IDE 的第一个 - 仅用于工作,因为它启动相对较慢。第二个速度更快,因此它恰好用作文本编辑器来快速打开、更正和关闭某些内容。

实际上,问题是现在代码分配给所有文本文件,我想将其更改为 Sublime,但是有很多 mime 类型,我很难通过 GUI 更改,它也有问题,它不断向上滚动名单。我想知道可以在哪些文件中更正。我看了看~/.local/share/applications,那里没有Code的记录。

截屏

linux
  • 2 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-05-21 05:26:27 +0000 UTC

linux 系统上的自定义拼写词典在哪里?

  • 1

您能告诉我自定义词典在哪里,您可以在其中添加新单词以在浏览器中进行拼写检查吗?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-05-03 19:57:30 +0000 UTC

Xubuntu 18.04 错误

  • 0

我使用 Xubuntu 17.10 很长时间,其中的一切都完全适合我,但是随着 18.04 的发布,我遇到了一些小麻烦。我目前有这两个系统使用相同的主分区,并且仅在 18.04 上出现问题,因此这与本地用户设置无关,而是系统本身。

首先,安装后,我立即爬上安装显卡驱动程序(nvidia)。在 17.10 最新版本是 384,我没有问题。在 18.04 版本 390 中,它似乎可以工作,但安装后ForceCompositionPipeline = On(此选项解决了撕裂问题),系统在第一次启动时死机,为了让它挂起,你必须锁定会话并再次解锁(使用命令xflock4)。第二个奇怪的地方来了。

锁屏没有标准分辨率(1920x1080),但有一些其他的。google了半天如何更改锁屏分辨率,只找到了关于在系统启动时更改此屏幕分辨率的文章,但事实是,该错误仅在锁定屏幕的情况下出现!

总的来说,我通过安装一个较旧的驱动程序(340)解决了冻结问题,但锁屏的分辨率仍然是一场噩梦。

linux
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-01-24 23:37:06 +0000 UTC

如何从表中提取变量并将它们放在当前范围内?

  • 0

我有一个包含许多不同类的表。我想直接从连接这个表的模块中使用这些类,而不是参考父母(Window而不是app.gui.Window)。

这是我需要的最简单的示例:

t = {
  a = 1,
  b = 2,
  c = 3
}

function f(t)
  print(t.b) -- так работает
  print(b) -- как заставить работать так?
end

f(t)

UPD:当然,最简单的方法是以这种方式解决问题:b = t.b,但是让我们同意我事先不知道表 t 中的键的名称(更准确地说,它们是我知道的,当然,但这a = t.a; b = t.b; c = t.c ... z = t.z是某种狗屎代码)。

这是我刚刚提出的解决方案:

function f(t)
  print(t.b) -- так работает
  for k, v in pairs(t) do _G[k] = v end
  print(b) -- и так работает!
end

...但是,正如您所看到的,它会影响全局范围,而不是本地范围,这是不允许的!我需要_G的本地类似物,某种_L。

有一个想法是创建这样一个变量并将其注册到元方法debug.getlocal和debug.setlocal中,虽然我并没有真正理解这些函数的语法并且我对元方法的能力也不强,但我会尝试。

lua
  • 1 个回答
  • 10 Views
Martin Hope
Beast Winterwolf
Asked: 2020-01-23 00:20:44 +0000 UTC

Gdebi 不想安装任何东西

  • 2

当我通过浏览器、标准文件管理器或 xdg-open 命令运行 deb 包时,gdebi 会抛出错误:Refusing to render service to dead parents. 但是当你从双指挥官打开一个 deb 文件时,一切都安装好了!当然,我知道可以通过 apt 安装没有 gdebi 的软件包,但我希望能够一键安装。系统 - Xubuntu 17.10。(在 16.04 这个错误似乎不存在)。这是另一个演示视频。如果您也不知道如何处理它,那么您能告诉我一个有价值的 gdebi 替代品吗?

ubuntu
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5