小编Ami*_*rma的帖子

subprocess.Popen():OSError:[Errno 8] python中的exec格式错误?

昨天,我编写并运行了一个python script,它执行一个shellusing subprocess.Popen(command.split())where命令是字符串,它构成了.sh脚本及其参数.这个脚本工作正常,直到昨天.今天,我运行相同的脚本,现在我不断遇到这个错误.

p=subprocess.Popen(shell_command.split())
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error
Run Code Online (Sandbox Code Playgroud)

我知道在提出这个问题之前有过类似的问题,但在我的情况下,我尝试了一切不能解决我目的的问题.使用shell=True不起作用,因为我的shell脚本调用另一个shell脚本,在此脚本之前必须设置一些环境才能运行该脚本.我严重陷入困境.我只是重启我的系统一次.我在用ubuntu 12.04

编辑:

 import subprocess
 import os
 import sys

 arg1=sys.argv[1]
 arg2=sys.argve[2]

 shell_command = 'my_path/my_shell.sh ' + arg1 + ' '+ arg2
 P = subprocess.Popen(shell_command.split())
 P.wait()
Run Code Online (Sandbox Code Playgroud)

my_shell.sh:

  arg1=$1
  arg2=$2

  cd $TOP
  setup the environment and run shell script
  build the kernel ...
  execute shell command .....
Run Code Online (Sandbox Code Playgroud)

python linux shell

36
推荐指数
3
解决办法
5万
查看次数

在linux/compiler.h文件中定义的预处理器宏的目的是什么?

我是Linux内核的新手.我正在使用稀疏工具来清除代码中存在的噪音.我遇到了这些宏:

   # define __user      __attribute__((noderef, address_space(1)))
   # define __kernel    __attribute__((address_space(0)))
   # define __safe      __attribute__((safe))
   # define __force __attribute__((force))
   # define __nocast    __attribute__((nocast)) 
   # define __iomem __attribute__((noderef, address_space(2)))
   # define __must_hold(x)  __attribute__((context(x,1,1)))
   # define __acquires(x)   __attribute__((context(x,0,1)))
   # define __releases(x)   __attribute__((context(x,1,0)))
   # define __acquire(x)    __context__(x,1)
   # define __release(x)    __context__(x,-1)
   # define __cond_lock(x,c)    ((c) ? ({ __acquire(x); 1; }) : 0)
   # define __percpu    __attribute__((noderef, address_space(3)))
Run Code Online (Sandbox Code Playgroud)

现在我想知道:稀疏如何使用它们来报告错误/警告?

我的问题:

  1. 我想要详细说明它们如何帮助编译器和稀疏报告警告.
  2. 这些address_space(x) 上下文(X,x,x)有什么用途?
  3. __nocast,__ force,__ user,__safe的目的是什么?

c linux macros gcc gcc-warning

9
推荐指数
1
解决办法
1894
查看次数

checkpatch.pl 是如何工作的,通过在补丁上运行它我们可以得到什么?

我对 Linux 和 Git 很陌生。我想知道checkpatch.pl脚本到底做了什么。我知道 Internet 上有一个源代码,但它是一个 Perl 脚本,我不知道 Perl。

那么,这里的任何人都可以在这里向我解释它到底是做什么的吗?

linux git

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

我们如何评估 Android 中 zram 的 Lz0 与 Lz4 压缩算法的性能?

我是 Linux 新手,我正在尝试收集lz0Vslz4压缩算法的统计数据。根据Google声称的结果;它表明lz4 read/decompression比操作快三倍lz0 read。而write操作与lz0. 所以总体来说lz4是比更好的算法lz0。但结果是在 x86 上评估的。不过,我想在arm64上测试它们。

lz0因此,就活动而言,我想评估Linux的性能(读/写操作时间、队列中的延迟)lz4。请建议一些文档和想法,我该怎么做?

linux performance android

5
推荐指数
0
解决办法
3398
查看次数

如何使用 python 结构体将结构体打包到结构体中?

struct t1中给出了如何打包struct python

我看到这里给出了许多示例https://docs.python.org/2/library/struct.html来打包如下值: pack('hhl', 1, 2, 3)

但是如何打包示例struct t1中的c类型struct python

struct s {
    int16_t x;
    int8_t  y;
    uint8_t z;
};
struct t1 {
    int16_t  x;
    struct s y;
};
Run Code Online (Sandbox Code Playgroud)

python struct memory-alignment

5
推荐指数
2
解决办法
2935
查看次数

用于从python中的字符串中提取所有复杂日期格式的正则表达式

我有以下字符串:

 dateEntries = "04-20-2009; 04/20/09; 4/20/09; 4/3/09; Mar 20, 2009; March 20, 2009; Mar. 20, 2009; Mar 20 2009; 20 Mar 2009; 20 March 2009; 2 Mar. 2009; 20 March, 2009; Mar 20th, 2009; Mar 21st, 2009; Mar 22nd, 2009; Feb 2009; Sep 2009; Oct 2010; 6/2008; 12/2009; 2009; 2010"
Run Code Online (Sandbox Code Playgroud)

在这里,我想使用regex. 作为尝试,我写了以下内容regex

import re

regEx = r'(?:\d{1,2}[-/th|st|nd|rd\s]*)?(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z\s,.]*(?:\d{1,2}[-/th|st|nd|rd)\s,]*)?(?:\d{2,4})'

re.findall(regEx, dateEntries)
Run Code Online (Sandbox Code Playgroud)

我期待这能工作,但它只返回日期的子集。

A = ['Mar 20, 2009',
 'March 20, 2009',
 'Mar. 20, 2009',
 'Mar 20 2009',
 '20 Mar …
Run Code Online (Sandbox Code Playgroud)

python regex date

4
推荐指数
1
解决办法
2771
查看次数

将void指针转换为float*/int*时取消引用

一个

int i = 10;
void *p = &i;
printf("%f\n", *(float*)p);
Run Code Online (Sandbox Code Playgroud)

float i=10.00;
void *p = &i; // no change
printf("%d\n", *(int*)p);
Run Code Online (Sandbox Code Playgroud)

为什么A打印0.0而不是10.0?如果我们将A改为B,那么它的输出就是垃圾.

c

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

如果使用`fscanf()`读取它时,如何处理字符串中的`%`

假设有一个文件a.txt,其中每个字符串都是键值对<key: value>.但有一个限制是我的密钥也可以包含字符%.例如:如下所示

string : INDIA
integer : 2015
ratio %: 20
integer2 : 2016
Run Code Online (Sandbox Code Playgroud)

现在通过使用fscanf,我想验证文件中存在的字符串的每个值a.txt.

我的示例代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
   char str[8];
   int arr[2];

   FILE * fp;
   int j=0;
   char *out_format[4] = {
       "string :",
       "integer :",
       "ratio %:",
       "integer2 :"
   };

   fp = fopen ("a.txt", "r");

   if (fp == NULL) {
       perror( "fopen failed for input file\n" );
       return -1;
   }

    for (j=0; j …
Run Code Online (Sandbox Code Playgroud)

c scanf

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

哪个更好用"=="或"-eq"来比较bash shell中的整数?

我可以看到一些文章喜欢 这个地方应提到的是"当量"是用于比较整数,但是这并不能说我们不能用"=="比较整数.

我在本地bash shell上验证了这一点,"=="工作正常.那么任何人都可以让我帮助理解哪个是更好的选择,如果"-eq"那么为什么呢?

bash shell

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

与嵌套宏扩展混淆

需要解释以下代码:

#include <stdio.h>

int foo(int x) {
    printf("in foo\n");
    return x;
}

int __foo(int x) {
    printf("in ___foo\n");
    int y = foo(x);
    return y + 1;
}

#define foo(x) __foo(x)
int  main()
{
    printf("=> %d\n", foo(2));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出: 我从上面的实验中收到的输出是:

in ___foo
in foo
=> 3
Run Code Online (Sandbox Code Playgroud)

虽然我期待这会导致递归调用?

编辑:宏定义后应定义__foo()

c macros

-5
推荐指数
1
解决办法
58
查看次数

标签 统计

c ×4

linux ×4

python ×3

macros ×2

shell ×2

android ×1

bash ×1

date ×1

gcc ×1

gcc-warning ×1

git ×1

memory-alignment ×1

performance ×1

regex ×1

scanf ×1

struct ×1