小编msw*_*msw的帖子

如何防止开发人员删除perforce仓库?

我是perforce的新手,最近开始尝试.我是具有写权限的普通开发人员,并且能够删除整个库.如何在保留写权限的同时避免这种情况?除了触发器和权限表之外还有其他方法吗?

此外,如果开发人员删除了[仓库?-msw]并提交了更改列表,如何在以下场景中恢复:

  1. 检查点和期刊还没有创建?
  2. 工作区同步到库,并最终清除了工作区.

But the developer is able to view files through the changelist. [??? -msw]

I request someone to clear-up these things for me.

permissions perforce

3
推荐指数
1
解决办法
448
查看次数

在Windows下运行的C二进制文件中的初始化数据段

我很长一段时间试图了解如何在OS下处理程序内存(我使用Windows,但我想这在Linux上会是相同或非常接近).

到目前为止,我知道(主要是感谢stackoverflow用户)局部变量存储在堆栈中.现在我终于明白了为什么.那没关系.

但我仍然想念的是,如何存储和处理全局变量.我想在汇编的基础上知道它.我知道如何处理这些问题,但我无法确定,因为有许多事情我还不知道,这可能使我的想法无法实现.

所以,我的想法是,全局变量位于程序代码的末尾.在最后一条指令之后.为什么我认为它可能是这样的?比起来,你不需要浪费任何额外的内存和CPU时间.因为执行时操作系统将变量及其默认值复制到RAM中.

为什么我认为这是可能的?如果我没有错,那么在现代x86操作系统上,每个程序从0开始都有自己的地址空间.这样,编译非常容易知道全局变量的地址.因为它知道程序的长度,所以它可以计算它在地址空间中的位置.

为什么我认为这可能都错了?Becouse我已经想到为什么在堆栈上创建局部变量的方式相同.当你有一些ELF格式的例程时,你有预编译的例程,只有未解决的变量地址.

另外,在一些文章中,我读到使用malloc分配内存扩展堆.因为我把堆作为程序代码之后的空格,会有错误因为它会成长为堆栈.否则堆栈将需要位于进程地址空间的末尾,但是taht将是可怕的内存浪费.

我试图尽可能多地描述我的观点,所以我希望你能理解我犯了哪些错误,并帮助我填补我所缺少的知识.谢谢.

c memory

3
推荐指数
1
解决办法
999
查看次数

如何使用Python子进程执行长bash序列

我想这样做:

Bash代码:

grub --batch << EOF
root (hd0,1)
find /boot/grub/menu.lst
setup (hd0)
quit
EOF
Run Code Online (Sandbox Code Playgroud)

Python代码:

subprocess.call('grub --batch << EOF', shell=True)
subprocess.call('root (hd0,1)', shell=True)
subprocess.call('find /boot/grub/menu.lst', shell=True)
subprocess.call('setup (hd0)', shell=True)
subprocess.call('quit', shell=True)
subprocess.call('EOF', shell=True)
Run Code Online (Sandbox Code Playgroud)

但这不起作用.现在有人解决这个问题的替代方法吗?

非常感谢!

python bash subprocess

3
推荐指数
2
解决办法
2650
查看次数

存储10亿个小文本文件的最佳方法是什么?

在单个文件系统上,我需要存储10亿个1KB文本文件.每个文件都有一个唯一的id字符串,应该进行性能优化.哪个最好?

EXT4 :(文件名的示例文件结构:kdWqpGQ1)

/kd/Wq/pG/Q1.file
Run Code Online (Sandbox Code Playgroud)

要么

/kdWqpGQ1.file
Run Code Online (Sandbox Code Playgroud)

或者我应该避免这种情况并使用某种非关系数据库?

此外,我总是可以将5TB的硬盘共享到5*1TB硬盘中,每个硬盘有200M以上的文件.我想补充说1B文件是一个极限情况,我很可能只达到500M.

谢谢!

database filesystems

3
推荐指数
2
解决办法
2791
查看次数

我应该为我的应用程序使用进程或线程吗?

我有一台运行Linux 2.6内核的ARM设备,总内存为64 MB RAM.

有一个数据源,包括一个由Linux机箱查询的仪表,通过RS485和ModBus作为应用程序协议.

还有另一项任务,包括读取这些值并生成json对象,然后将HTTP POST发送到特定服务器.

网络操作可能比串行慢,尤其是在低GPRS覆盖范围内.

我需要并发,程序是用C语言编写的.

你会以哪种方式进行并发?使用select()还是使用pthreads?

c linux multithreading process

3
推荐指数
1
解决办法
111
查看次数

模块base64.decode产生损坏的pdf base64编码文件

你好,当我尝试解码像这样的图像

"example_label.b64"文件在这里(http://ge.tt/27odGly/v/0)

我看到损坏的pdf,看起来像base64解码损坏了这个文件.

你能帮助我吗?

这里是代码示例.

import base64
with open('example_label.b64','r+') as f:
    data = f.read()
    f.close()
# data = data.decode('base64')
#or
data = base64.b64decode(data)
with open('example_label.pdf','w+') as f:
    f.write(data)
    f.close()
Run Code Online (Sandbox Code Playgroud)

谢谢.

python base64

3
推荐指数
1
解决办法
1980
查看次数

使用xclip将剪贴板内容粘贴到bash中的变量中

我知道此命令会将剪贴板内容粘贴到文件中:

xclip -out -selection clipboard >> file.txt
Run Code Online (Sandbox Code Playgroud)

如果我想将剪贴板内容粘贴到像字符串这样的变量中,该怎么办?

bash clipboard xclip

3
推荐指数
1
解决办法
2854
查看次数

RISCV反汇编选项数字和无别名

我克隆了riscv-tools存储库(主分支),并遵循构建过程。一切都很好。

然后,我尝试为RV32IM指令集编译hello world程序,方法是:

riscv64-unknown-elf-gcc -m32 -march=RV32IM -o hello hello.c -save-temps
Run Code Online (Sandbox Code Playgroud)

我使用选项save-temps保留中间文件。(hello.s,hello.i,hello.o)

到目前为止一切正常,我可以使用以下命令运行hello world程序:

spike pk hello
Hello world!
Run Code Online (Sandbox Code Playgroud)

现在,我想看看该程序的汇编代码。我做了以下工作,并将汇编代码放到了hello.dump中

riscv64-unknown-elf-objdump -D -S -l -F  hello.o > hello.o.dump
Run Code Online (Sandbox Code Playgroud)

现在,我将感兴趣的是没有伪指令且具有非ABI寄存器名称的汇编代码。

当我这样做时,似乎可以做到:

riscv64-unknown-elf-objdump --target-help
Run Code Online (Sandbox Code Playgroud)

我得到这个:

The following RISC-V-specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):

numeric       Print numeric reigster names, rather than ABI names.

no-aliases    Disassemble only into canonical instructions, rather
              than into pseudoinstructions.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试添加这些选项时,它不起作用。

riscv64-unknown-elf-objdump -D -S -l -F  -Mno-aliases hello.o > …
Run Code Online (Sandbox Code Playgroud)

disassembly riscv

3
推荐指数
1
解决办法
971
查看次数

当修复破碎的标记时,BeautifulSoup丢弃文本

我对Python很陌生,但是到底是什么......这是一个奇怪的问题所以我会尽我所能尽力解释它:

我正忙着用Python编写一个脚本来检查一个网页是否有特定的变化(基本上从0翻到1的数字).当发生更改时,脚本将继续执行其他操作.不幸的是,我还没有达到这一点,因为我甚至在解析HTML时遇到了麻烦,因为BeautifulSoup抓住它时很多HTML都丢失了!(至少,这是我声称的.)

让我们一步一步:我正在使用BeautifulSoupMechanize为此而努力.首先,我在网页上找到一个表单并选择它,根据需要更改表单中的控件.(我已经验证了所有控件都按照我的预期更改.)之后,我提交表单,然后调用我编写的辅助函数调用process_results():

...
form = list(client.forms())[1]
client.select_form('ttform');
...
# Modify controls
...
client.submit()
process_results(client)
Run Code Online (Sandbox Code Playgroud)

process_results()只是检查客户回来了什么.首先,根据放入表单的内容,您可以获得无效的搜索结果,因此我想搜索网页上显示的错误消息,看看它是否存在.我BeautifulSoup用来做这个:

# Processes search results.
def process_serach_results(cli):

    html = cli.response().read()
    soup = BeautifulSoup(html)
    ...
Run Code Online (Sandbox Code Playgroud)

评估有问题的代码是否出现在页面上的语句如下所示:

...
if (soup.find('td', attr = {'class' : 'msgarea'}) != None):
    # Do something...
    ...
Run Code Online (Sandbox Code Playgroud)

这永远不会被评估为真,因为它找不到我正在描述的标签.我决定直接从打印出既响应MechanizeBeautifulSoup,这是我得到了(缩短):

Mechanize 打印我要找的代码,这意味着响应正确回复:

...
<TD class=msgarea>
<B class=important_msg>There was a problem with your request:</B>
<BR>
<BR>
<li class=red_msg>...</li>
...
</TD></TR></TABLE><P></DIV>
... …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup html-parsing

2
推荐指数
1
解决办法
928
查看次数

如何在bash中为变量赋值数组长度

我正在尝试编写一个简单的bash脚本,它可以添加整数并提供总和.我认为最简单的方法是将输入分配给数组.然后遍历数组以执行求和.我需要在for循环中使用数组的长度,并且无法弄清楚如何将数组长度分配给变量.

任何帮助在简单的脚本(我做了学习bash)上表示赞赏

#!/bin/bash
# add1 : adding user supplied ints

echo -n "Please enter any number of integers: "
read -a input

echo "Your input is ${input[*]}"
echo "${#input[@]} number of elements"

num = ${#input[@]}   # causing error
for ((i = 0; i < "${num}"; ++i )); do  # causing error
  sum = $((sum + input[$i]))
done

echo "The sum of your input is $sum"
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

line 10: num: command not found 
line 11: ((: i < :syntax error: operand …
Run Code Online (Sandbox Code Playgroud)

bash

2
推荐指数
1
解决办法
1131
查看次数