小编Gil*_*aor的帖子

在Python中 - 如何执行没有输出的系统命令

Python中是否有内置方法来执行系统命令而不显示输出?我只想获取返回值.

重要的是它是跨平台的,因此将输出重定向到/ dev/null将无法在Windows上运行,反之亦然.我知道我可以检查os.platform并自己构建重定向,但我希望有一个内置的解决方案.

python

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

Python - 如何检查另一个应用程序是否使用了某个文件?

我想打开一个由另一个应用程序定期写入的文件.此应用程序无法修改.因此,当我知道文件未被其他应用程序写入时,我只想打开该文件.

有没有pythonic方式来做到这一点?否则,我如何在Unix和Windows中实现这一目标?

编辑:我会尽力澄清.有没有办法检查当前文件是否已被其他应用程序打开?

我想从这个问题开始.那些其他应用程序读/写是否与现在无关.

我意识到它可能依赖于操作系统,所以现在可能并不真正与python相关.

python unix windows file-io logging

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

在C++中传递对文字的引用会发生什么?

这里发生了什么:

double foo( const double& x ) {
   // do stuff with x
}

foo( 5.0 );
Run Code Online (Sandbox Code Playgroud)
  1. 编译器是否创建匿名变量并将其值设置为5.0?
  2. x是否引用只读内存中的内存位置?这是一个奇怪的措辞,我知道......

编辑:我忘记了const关键字......

c++

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

了解C++结构大小

请考虑以下代码:

struct CExample  {
    int a; 
}            

int main(int argc, char* argv[]) {  

    CExample ce1;  
    CExample ce2;  

    cout << "Size:" << sizeof(ce1) << " Address: " << &ce1 << endl;   
    cout << "Size:" << sizeof(ce2) << " Address: " << &ce2 << endl;   

    CExample ceArr[2];
    cout << "Size:" << sizeof(ceArr[0])<< " Address: "<< &ceArr[0] <<endl;
    cout << "Size:" << sizeof(ceArr[1])<< " Address: "<< &ceArr[1] <<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出示例:
ce1:Size = 4,地址:0039FAA0
ce2:Size = 4,地址:0039FA94
ceArr [0]:Size = 4,Address:0039FA84
ceArr …

c++ struct sizeof

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

Python,subprocess,devenv,为什么没有输出?

我从Python脚本构建Visual Studio解决方案.一切都很好,除了我无法捕获构建输出.

p = subprocess.Popen(['devenv', 'solution.sln', '/build'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(out, err) = p.communicate()
ret = p.returncode
Run Code Online (Sandbox Code Playgroud)

在这里,无论是outerr总是空的.无论构建成功与否,都会发生这种情况p.returncode.

python subprocess

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

使用C++进行文件压缩

我想制作自己的文本文件压缩程序.我对C++编程知之甚少,但我已经学会了所有基础知识并编写/读取文件.我在google上搜索了很多关于压缩的内容,并且看到了许多不同类型的方法来压缩像LZW和Huffman这样的文件.问题是他们中的大多数没有源代码,或者他们有一个非常复杂的源代码.我想问你是否知道我可以学习的任何好的网页并自己制作压缩程序?

编辑:我会让这个话题开放一段时间,因为我打算在接下来的几天里研究这个问题,如果我有任何问题,我会在这里问他们.

c++ compression

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

不能在函数声明中使用模板参数

我很难找到以下代码无法编译的好理由.它给了我以下错误.

错误2错误C2923:'std :: pair':'std :: set :: iterator'不是参数'_Ty1'的有效模板类型参数

我需要一点见解,为什么C++不允许我在函数声明中使用template参数,因为我使用set <int> :: iterator而不是set <T> :: iterator程序可以工作.

#include<iostream>
#include<set>
using namespace std;

template <typename T>
void print(const pair< set<T>::iterator, bool> &p) //<- Here is the problem
{
    cout<<"Pair "<<*(p.first)<<" "<<p.second<<"\n";
}

int main() {
   set<int> setOfInts;
   setOfInts.insert(10);    
   pair<set<int>::iterator, bool  > p = setOfInts.insert(30);
}
Run Code Online (Sandbox Code Playgroud)

c++ templates stl metaprogramming visual-c++

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

从python subprocess.Popen捕获stderr(命令,stderr = subprocess.PIPE,stdout = subprocess.PIPE)

我在这里发过这么多次了; 但未能从命令中捕获故意错误.到目前为止我找到的最好的部分工作..

from Tkinter import *
import os
import Image, ImageTk
import subprocess as sub
p = sub.Popen('datdsade',stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()

root = Tk()
text = Text(root)
text.pack()
text.insert(END, output+ "Error: " + errors )
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python subprocess

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

升级到SVN 1.5

从我理解的一点点来看,svn 1.5为合并操作提供了更好的支持.所以我正在考虑从svn 1.4升级.存储库位于本地文件中(或多或少),我从命令行使用svn.

我可以期待什么障碍以及svn 1.5如何在没有合并数据的情况下处理现有存储库?

编辑: 特别是,在我运行之后svnadmin upgrade,svn如何处理上次在1.4时代合并的分支的合并?

svn-populate-node-origins-index与此有什么关系?

参考:http://subversion.tigris.org/svn_1.5_releasenotes.html

svn upgrade

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

如何创建可以初始化C++数据类型的类?

标题基本上都说明了一切.我主要想这样做,这样我就可以创建一个对象(比如一个自定义字符串对象),可以初始化其他API中其他函数的参数.以下是我尝试使用自定义整数类的示例:

#include <iostream>
using namespace std;

class test
{
public:
    int member;
    test(int i) : member(i) {}

    friend int &operator=(int &i, test t);
};

int &operator=(int &i, test t)
{
   return (i = t.member);
}

int main()
{
    int i;
    test t = 90;

    cout << (i = t);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我收到一个错误,说operator =需要是一个成员函数.我理解C++标准的目标是防止赋值运算符的静态和非成员重载被实现,但有没有其他方法可以做到这一点?感谢您的任何帮助/建议!

c++ overloading friend assignment-operator operator-keyword

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

使用C的简单堆栈实现

我用C编写了一个程序来实现一个简单的堆栈.但我在程序中遇到分段错误,发现很难找出错误.可以任何人帮助,

   #include<stdio.h>
   #include<stdlib.h>
   struct stack_structure{
     int stack_array[10];
     int stack_pointer;
   };
   void push_into_stack(struct stack_structure *,int);
   int main(){
     int no = 8;
     struct stack_structure *st;
     st->stack_pointer = -1;
     push_into_stack(st,no);
     return 0;
   }
   void push_into_stack(struct stack_structure *s,int no){
     s -> stack_pointer++;
     s -> stack_array[s -> stack_pointer] = no;
   }
Run Code Online (Sandbox Code Playgroud)

c

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

语言词汇应该有多大?

我今天开始研究即将推出的C++ 0x规范,并开始考虑语言词汇的正确大小.最初,让我感到非常烦恼的是引入了新的关键字.在一些粗略的层面上,我认为语言中关键词的数量是对其复杂性的估计.也就是说,在C++的情况下,添加新构造会使得掌握语言变得更加困难.这就是为什么K&R书比C++等同的小得多的一个原因.

在那之后,我想到了自然语言,它的词汇量随着时间的推移呈线性增长,无论语言如何(*).当然,唯一的例外是Newspeak,它说了很多.在这种情况下,词汇量大小与语言的表达能力有关.

但是,在编程语言中,您可以使用具有较小词汇量的非常富有表现力的语言(即Lisp).

所以,用短语来表达这个问题,在您看来,语言词汇应该是什么 - 大而冗长或小而简洁?

language-agnostic

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

gfortran、DLL、下划线

我想从第三方 DLL 访问一些子例程。这些函数使用 STDCALL 作为调用约定。

跑步dumpbin /export foo.dll给了我类似的东西:

      ...
      7    6 00004B40 Foo@16
      ...
Run Code Online (Sandbox Code Playgroud)

我使用以下方法编译我的代码:

      gfortran test.f90 -o test.exe -Wl,foo.dll
Run Code Online (Sandbox Code Playgroud)

我收到错误:(undefined reference to '_foo_'注意下划线)。

我尝试添加-mrtd编译标志以及我在谷歌上搜索的其他标志,但都无济于事。

我怎样才能告诉 fortran 不要添加下划线?


编辑:需要进行一些澄清。

  1. 我有一个现有的 DLL,但没有源代码。
  2. 如果有帮助的话,此 DLL 是用 Visual Basic 编写的。
  3. 我想从fortran调用这个 DLL 。
  4. 当我在 test.f90 中写入时:Foo(1.0d0)出现undefined reference to '_foo_'链接错误

dll fortran gfortran

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