小编Der*_*den的帖子

Bash命令行和输入限制

在bash(或其他shell)中是否存在某种字符限制,可以输入多长时间?如果是这样,那个字符限制是什么?

即是否可以在bash中编写一个命令行执行时间过长的命令?如果没有要求的限制,是否有建议的限制?

unix bash shell command-line-arguments

81
推荐指数
2
解决办法
9万
查看次数

FFmpeg挂起缓冲区填充c ++

我正在使用ffmpeg从RTSP流处理一堆帧.我最终对这些帧进行了大量处理,这意味着我并不总是实时提取.如果缓冲区已满,则进程挂起.我想知道以下解决方案之一是否可行/解决问题,如果是,我将如何使用ffmpeg库实现它:

1)如果我到达悬挂点,有没有办法清除缓冲区?(我可以确定它何时挂起,我只是不知道该怎么做).

2)有没有办法让缓冲区覆盖旧数据,只是总是读取最新的数据?如果我丢帧,对我来说无关紧要.

3)我已经发现,我可以让缓冲区arbtrarily大:av_dict_set(&avd, "buffer_size", "655360", 0);.这可能是一个解决方案,但我不知道它需要多大/多小,因为我不知道流将发布视频的时间有多长?

4)这只是我需要提出的ffmpeg人员的错误吗?

5)我没有考虑过的其他事情?

while(av_read_frame(context, &(packet)) >= 0 && fcount < fps*SECONDS) {
    clock_t start, end;
    int ret = avcodec_send_packet(codec_context, packet);
    if(!(packet->stream_index == video_stream_index)) {
      continue;
    }

    if (ret == AVERROR(EAGAIN) || ret == AVERROR(EINVAL)) {
      continue;
    } else if (ret < 0) {
      cerr << "Error while decoding frame " << fcount << endl;
      exit(1);
    }

    ret = avcodec_receive_frame(codec_context, frame);
    if (ret == AVERROR(EAGAIN) || ret == AVERROR(EINVAL)) {
      continue;
    } else …
Run Code Online (Sandbox Code Playgroud)

c++ buffer ffmpeg

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

Python中len()和pop()的效率

为什么评论显着加快?弹出,比较和长度检查不应该是O(1)吗?这会显着影响速度吗?

#! /usr/bin/python                                                                
import math                                                                       

pmarbs = []                                                                       
pows = 49                                                                         
pmarbs.append("W")                                                                
inc = 1                                                                           
for i in range(pows):                                                             
    count = 0                                                                     
    j = 0                                                                         
    ran = int(pow(2, i))                                                          
    marker = len(pmarbs) - inc                                                    
    while (j < ran):                                                              
        #potential marble choice                                                  
        pot = pmarbs[marker - j]                                                  
        pot1 = pot + "W"                                                          
        pot2 = pot + "B"                                                          

        if (pot2.count('W') < pot2.count('B')) and (len(pot2) > (i+1)):           
            count += 1                                                            
        else:                                                                     
            pmarbs.append(pot2)                                                   

        pmarbs.append(pot1)                                                       
#        if(len(pmarbs[0]) < i):                                                  
#           pmarbs.pop(0)                                                         
#           marker -= 1 …
Run Code Online (Sandbox Code Playgroud)

python performance

6
推荐指数
2
解决办法
4681
查看次数

家庭作业:我在某个地方有内存泄漏,但我找不到它.关于如何更有效地使用valgrind的任何提示?

好的,首先,公平警告,这是一个班级的项目.除了修复我的内存泄漏之外,我不是在寻找任何帮助.我想我已经在这个C代码的空间上遵循了一些可怕的编码实践.无论如何,当我运行Valgrind来搜索内存泄漏发生的位置时,我一点都不清楚我错过了什么内存泄漏.我知道至少有两个字符串,我没有释放,但我malloc()编辑,纯粹基于valgrind输出的大小.因为我从项目中获取了一些无关的代码,valgrind行号很可能已经关闭,因此为了方便起见,我将它们标记为注释.

一点背景,我正在编写shell的基本功能.它目前执行以下操作:

1.接受用户输入

2.将输入解析为cmdin结构

3.执行命令,前提是它没有管道.

4.从我创建的cmdin中取出空间,然后从步骤1重新开始.这就是问题发生的地方.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#define MAX_SIZE 1024
#define MAX_CLEN 2097152
#define READ_END 0
#define WRITE_END 1
#define CHILD_STATUS 0
struct cmdin
{
    char *cmd;
    char **args;
    int nargs;
    int pipeflag;
};

//check if the last argument of the command passed to it is a pipe.
//if so, return the position of the pipe, otherwise, return 0
//if it has already found a pipe, it will return the …
Run Code Online (Sandbox Code Playgroud)

c valgrind memory-leaks memory-management

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

在python命令行输入python命令

这个标题可能令人困惑,但基本上我希望能够做到以下几点:

import subprocess

subprocess.call(["python"])
subprocess.call(["import", "antigravity"])
subprocess.check_call(["print","\"This is so meta\" "])
subprocess.call(["exit()"])
Run Code Online (Sandbox Code Playgroud)

预期的行为是它会打开一个 python 终端会话,然后打开 xkcd 漫画 353,在命令行中打印 'this is so meta',最后退出 python 命令行。

基本上,我希望能够打开一个 python 会话,并从我的 python 脚本中运行命令。我还希望能够检查我在脚本中运行的命令的输出。这可能吗?如果是这样,我需要使用什么库?子进程会这样做吗?

python subprocess

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

从Image PIL获取图像文件名

是否有可能从Image对象中获取已经打开的Image的文件名?我检查了API,我能想到的最好的是PIL.Image.info,但是当我检查它时它似乎是空的.我还可以使用其他东西在PIL图像库中获取此信息吗?

(是的,我意识到我可以将文件名传递给函数.我正在寻找另一种方法来执行此操作.)

from PIL import Image

def foo_img(img_input):
  filename = img_input.info["filename"]
  # I want this to print '/path/to/some/img.img'
  print(filename) 

foo_img(Image.open('/path/to/some/img.img'))
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library python-2.7

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

for loop保存到数组但跳过保存元素

基本上,我想要一个花哨的oneliner,它不会将我正在查看的所有文件读入内存,但仍会处理它们,并保存了一个很好的样本.

我想做的o​​neliner是:

def foo(findex):
    return [bar(line) for line in findex] # but skip every nth term
Run Code Online (Sandbox Code Playgroud)

但我希望能够不能保存每一行.即,我仍然希望它运行(用于字节位置),但我不想保存图像,因为我没有足够的内存.

所以,如果bar(line)的输出是1,2,3,4,5,6,...我希望它仍然可以继续运行,1,2,3,4,5,6,...但我希望返回值为[1,3,5,7,9,...]或类似的东西.

python python-3.x

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

作业:为什么定义argv [2]?

当我运行这个没有任何输入的程序时,我得到了一个奇怪的字符串,用于我的argv [2].为什么不是argv [2]未定义?TERM_PROGRAM=Apple_T< - 这就是我得到的.我想知道这是否与在mac上运行它有关?

if(argv[2]) {
    sscanf(argv[2], "%lf", &argWind);
    sscanf(argv[2], "%20s",  str);
    sprintf(str2, "%lf", argWind);
    printf("String: %s, %lf", str, argWind);
    int len;
    len = strlen(str);
    str2[len] = '\0';

    if(strcmp(str, str2)){
        printf("\nError: you entered a non-numeric entry for wind speed\n");
        return 0;
    }
} 
Run Code Online (Sandbox Code Playgroud)

c

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