草庐IT

c - 无需预洗牌即可生成(非常)大的非重复整数序列

背景我有一个我编写的简单媒体客户端/服务器,我想生成一个非显而易见的时间值,我随每个命令从客户端发送到服务器。时间戳将包含相当多的数据(纳秒分辨率,即使由于现代操作系统中定时器采样的限制,它并不真正准确)等。我正在尝试做的(在Linux上,在C中)是生成一对一的n位值序列(假设数据现在存储在128位整数数组元素中)没有重叠/冲突的值。然后,我会将一个伪随机128位值/数字作为“盐”,将其应用于时间戳,然后开始向服务器发送命令,增加预加盐/预散列值。时间戳大小之所以如此之大,是因为时间戳可能必须容纳非常长的持续时间。问题如何使用初始盐值完成这样的序列(非冲突)?Thebestapproa

linux - 如何在 BusyBox shell 中生成随机数

如何使用AShell(受限bash)生成随机数?我在没有od或$RANDOM的设备上使用BusyBox二进制文件。我的设备有/dev/urandom和/dev/random。 最佳答案 $RANDOM和od是BusyBox中的可选功能,鉴于您的问题,我假设它们不包含在您的二进制文件中。您在评论中提到/dev/urandom存在,这很好,这意味着您需要做的是以可用形式从中检索字节,而不是实现一个更困难的问题随机数发生器。请注意,您应该使用/dev/urandom而不是/dev/random,请参阅Isarandfrom/dev/ura

linux - 如何在 BusyBox shell 中生成随机数

如何使用AShell(受限bash)生成随机数?我在没有od或$RANDOM的设备上使用BusyBox二进制文件。我的设备有/dev/urandom和/dev/random。 最佳答案 $RANDOM和od是BusyBox中的可选功能,鉴于您的问题,我假设它们不包含在您的二进制文件中。您在评论中提到/dev/urandom存在,这很好,这意味着您需要做的是以可用形式从中检索字节,而不是实现一个更困难的问题随机数发生器。请注意,您应该使用/dev/urandom而不是/dev/random,请参阅Isarandfrom/dev/ura

ruby-on-rails - "random: nonblocking pool"在 Ubuntu 16.04 服务器上初始化需要很长时间

在Ubuntu16.04服务器(内核4.4.0-22)上,根据/var/log/syslog,与Ubuntu14.04相比,初始化“随机:非阻塞池”需要2-5分钟:May2818:10:42fookernel:[277.447574]random:nonblockingpoolisinitialized这在Ubuntu14.04(内核3.13.0-79)上发生得更快:May2706:28:56fookernel:[14.859194]random:nonblockingpoolisinitialized我在DigitalOcean虚拟机上观察到了这一点。这给Rails应用程序带来了麻烦

ruby-on-rails - "random: nonblocking pool"在 Ubuntu 16.04 服务器上初始化需要很长时间

在Ubuntu16.04服务器(内核4.4.0-22)上,根据/var/log/syslog,与Ubuntu14.04相比,初始化“随机:非阻塞池”需要2-5分钟:May2818:10:42fookernel:[277.447574]random:nonblockingpoolisinitialized这在Ubuntu14.04(内核3.13.0-79)上发生得更快:May2706:28:56fookernel:[14.859194]random:nonblockingpoolisinitialized我在DigitalOcean虚拟机上观察到了这一点。这给Rails应用程序带来了麻烦

linux - 绕过 dev/urandom|random 进行测试

我想编写一个功能测试用例,用已知的随机数值测试程序。我已经在单元测试期间用模拟对其进行了测试。但我也希望将其用于功能测试(当然不是全部:)只为一个进程覆盖/dev/urandom的最简单方法是什么?有没有办法对单个文件执行类似chroot的操作,并让所有其他文件“通过”? 最佳答案 如果您的系统足够新(例如RHEL7)并且支持setns系统调用,则可以借助挂载命名空间来完成。需要根访问权限。想法是为进程创建一个单独的挂载命名空间,并在该命名空间内通过/dev/random绑定(bind)挂载一些其他文件或FIFO,以便来自该挂载命名

linux - 绕过 dev/urandom|random 进行测试

我想编写一个功能测试用例,用已知的随机数值测试程序。我已经在单元测试期间用模拟对其进行了测试。但我也希望将其用于功能测试(当然不是全部:)只为一个进程覆盖/dev/urandom的最简单方法是什么?有没有办法对单个文件执行类似chroot的操作,并让所有其他文件“通过”? 最佳答案 如果您的系统足够新(例如RHEL7)并且支持setns系统调用,则可以借助挂载命名空间来完成。需要根访问权限。想法是为进程创建一个单独的挂载命名空间,并在该命名空间内通过/dev/random绑定(bind)挂载一些其他文件或FIFO,以便来自该挂载命名

c - 如何使用 C 在 Linux 中播放音调?

我正在尝试编写一个程序,根据一组简单的规则随机生成音乐。我希望该程序能够生成自己的声音,而不是为每个音符创建一个包含音频的文件。有谁知道这样做的简单方法?多音调的声音会很好(但不是必需的),我想要一个使用C的Linux解决方案。 最佳答案 我建议您试试PortAudio库。它是一个精简的跨平台库,抽象了音频输出功能。它附带了一堆小例子。其中一个播放单个正弦波,一个同时播放一束正弦波。由于这些示例已经完成了您需要的90%,因此您应该可以在不到半小时的时间内启动并运行音频。提示:PortAudio最好的文档在头文件中!

c - 如何使用 C 在 Linux 中播放音调?

我正在尝试编写一个程序,根据一组简单的规则随机生成音乐。我希望该程序能够生成自己的声音,而不是为每个音符创建一个包含音频的文件。有谁知道这样做的简单方法?多音调的声音会很好(但不是必需的),我想要一个使用C的Linux解决方案。 最佳答案 我建议您试试PortAudio库。它是一个精简的跨平台库,抽象了音频输出功能。它附带了一堆小例子。其中一个播放单个正弦波,一个同时播放一束正弦波。由于这些示例已经完成了您需要的90%,因此您应该可以在不到半小时的时间内启动并运行音频。提示:PortAudio最好的文档在头文件中!

linux - shell 范围内的随机数

我如何在sh(/bin/sh,不是bash)中生成0-60之间的随机数?这是卫星箱,没有$RANDOM变量,其他商品[cksum,od(od-vAn-N4-tu4我想随机化一个crontab作业的时间。 最佳答案 如果你有tr、head和/dev/urandom,你可以这样写:tr-cd0-9然后你必须使用余数运算符来输入0-60的范围。 关于linux-shell范围内的随机数,我们在StackOverflow上找到一个类似的问题: https://stac