小编Jay*_*y D的帖子

Python到C转换器/解释器

什么是将Python脚本转换为C的各种工具.我主要关注这些工具/转换器/解释器的速度.

谢谢,-J

c python converter

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

当使用Valgrind运行时,malloc返回null

我有一个巨大的分配(数十GB)与malloc调用发生在正常情况下工作.系统确实有一个巨大的RAM,是一台运行2.6 x86_64内核的64位机器.

mem rlimit已作为INFINITY以setrlimit完成.

我想用Valgrind运行它来进行内存分析并检查泄漏情况.

但是当使用valgrind运行时,malloc失败并返回NULL指针.

我尝试减少分配的大小,但这没有帮助.

有什么投入?

问候,-J

c c++ linux valgrind memory-management

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

`bundle install`失败(因为git协议)

有了这个简单的Gemfile,

source 'https://rubygems.org'
gem 'activerecord', "~> 2.2.3"
gem 'activerecord-sqlserver-adapter', github: 'arthrex/activerecord-sqlserver-adapter', :branch => '2-3-stable'
Run Code Online (Sandbox Code Playgroud)

bundle install 失败了

Fetching git://github.com/arthrex/activerecord-sqlserver-adapter.git
fatal: unable to connect to github.com:
github.com[0: 192.30.252.131]: errno=No error

Git error: command `git clone
"git://github.com/arthrex/activerecord-sqlserver-adapter.git"
"c:/Languages/Ruby/1.9.3/lib/ruby/gems/1.9.1/cache/bundler/git/activerecord-sqlserver-adapter-8019982c6a12a1297e8a135275
d94bdee6cd893b"
--bare --no-hardlinks` in directory c:/Users/BZISAD0/Code/CSV has failed.
Run Code Online (Sandbox Code Playgroud)

起初我以为我的代理配置搞砸了,但我可以毫无问题地执行此命令:

$ git clone http://github.com/arthrex/activerecord-sqlserver-adapter.git
Run Code Online (Sandbox Code Playgroud)

但是,使用git协议,它会失败:

$ git clone git://github.com/arthrex/activerecord-sqlserver-adapter.git
Cloning into 'activerecord-sqlserver-adapter'...
fatal: unable to connect to github.com:
github.com[0: 192.30.252.130]: errno=No error
Run Code Online (Sandbox Code Playgroud)

所以我推断代理与git协议不一致.无论如何,无论出于何种原因,http工作正常,但git协议却没有.

有办法解决这个问题吗?例如配置使用http://而不是git://我的~/.gitconfig

ruby git bundler dtn

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

函数C++中标准库函数的重载

我有一个免费的功能作为课程的一部分.在类的构造函数中,我正在做一些malloc操作.所以在destructor我试图释放那段记忆.但VS10编译器抱怨说

free(pointer); 
Run Code Online (Sandbox Code Playgroud)

与我班级的自由功能的签名不符.

所以问题是在一个类中,如果我们实现了与标准库函数名称相同的方法.如何打电话给另一个.

问候,

c++ overloading

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

导航栏后退按钮的操作

当用户单击后退按钮时,我想显示带有确认的警报。这就是我尝试添加动作的方式。

self.navigationItem.hidesBackButton = true
let newBackButton = UIBarButtonItem(title: "<", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.save(sender:)))
self.navigationItem.leftBarButtonItem = newBackButton
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想要默认的后退按钮图像而不是自定义标题。怎么做 ?

我也尝试了以下代码:

self.navigationItem.backBarButtonItem?.action = #selector(ViewController.save(sender:))
Run Code Online (Sandbox Code Playgroud)

...但动作也没有执行。

ios swift

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

最佳C结构定义

我只是想知道在C结构(C结构定义)中打包项(int,float,unions等)时要遵循的注意事项,这将允许编译器进一步优化它.

我想知道是否应该遵循任何指导原则,例如以允许对齐单词边界的顺序向结构添加项目.等?

细节将不胜感激.

问候,-J

该问题还需要针对交叉编译此类C结构的优化策略.

c compiler-construction optimization structure definition

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

Linux - 将用户空间文件系统(模仿一个:-))安装为FileSystem

我有一块C代码,它有一块内存(静态数组)可以模仿文件操作(它有类似于fopen/ fcloseetc的API ).因此,使用这个模仿FileSystem编译的任何代码都可以将这些API用作FileSystem以满足他们的所有需求:)

但我想知道,如果可能以某种方式将这些API注册到Linux系统/ mouning这个文件系统,从而使任何客户端能够通过使用普通的FileSystem调用来使用这个FS(无需任何静态链接它与My_FileSystem).

在寻找解决方案时,我遇到了将my_FileSystem作为驱动程序的想法!=>是否可以将我的代码编译为设备驱动程序(使用驱动程序中的内存块)并安装此File_system @ say "/mnt/MyFs",并转移文件系统调用,如USB驱动程序吗?(如果可以这样做,请你解释它是如何完成的,或者指出我可以阅读的内容).

我不想将这些添加为新的系统调用并重新编译内核(并使ppl的生活想要使用这个困难).

这主要适用于运行Linux的嵌入式系统......但也欢迎其他建议.:)

谢谢,

MicroKernel :)

linux filesystems device-driver linux-device-driver linux-kernel

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

C - 递归函数,排列,堆空间和神秘错误

感谢您提前花时间阅读我的帖子.我将是第一个承认这段代码有点令人费解的人.

本周末,我的项目一直在制作一个程序,它将格式化的字符串作为参数,并吐出该字符串的所有可能的排列.格式化的字符串看起来类似于printf格式的字符串.常量保存在字符串中,变量部分如下所示:%[number-of-chars] [permuation类型]其中

[type-of-permutation]对于整数可以是'd',对于大写字母字符可以是'u',对于小写字母可以是'l',对于所有字母字符可以是'a',对于字母数字可以是'n'.

有一个特殊情况"%w",它从单词列表中读取单词而不是递增每个单独的字符.

事情通常按照我希望的方式运作.但是,在使用gdb进行测试和调试时,我发现了两个我无法解释的错误.

错误#1:字符串partial最初填充了该类型的最小字符(例如,%5d将填充"00000")但是,在执行任意命令(fopen)之后,部分包含任意字符,通常较低值大于0x09.这发生在我在源中标记的第143行.

错误#2:当我运行这样的程序时:"./ Permute%w%2d -w words",其中"words"是Ubuntu单词列表,程序在到达第4,200行附近时抛出分段错误词汇表.这也令人困惑.因为数字4,200是如此随机,我只能假设程序耗尽堆栈内存或类似的东西.

我将此代码分解为几个头文件.我将首先发布主代码,然后是下面包含的头文件.

#include <stdio.h>
#include "../Libraries/permute.h"
#include <malloc.h>
#include <string.h>


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

  //Allocate ten base pointers to be inserted into our master string.
  struct base * part[10];

  //Allocate a character string on the heap to be manipulated by our program.
  char * master = malloc(100);

  //Organize arguments
  if(argc < 2) {
      printf("Usage:\n./Permute [Format String] -p -w [word-list] -o [output-file]\n");
      printf("Format string with the general …
Run Code Online (Sandbox Code Playgroud)

c recursion stack permutation

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

在内联汇编中使用C++引用与GCC

我有一个带有xchg指令的自旋锁.C++函数接受要锁定的资源.

以下是代码

void SpinLock::lock( u32& resource )
 { 
     __asm__ __volatile__
       (
            "mov     ebx, %0\n\t" 
"InUseLoop:\n\t"
            "mov     eax, 0x01\n\t"        /* 1=In Use*/
            "xchg    eax, [ebx]\n\t"
            "cmp     eax, 0x01\n\t"
            "je      InUseLoop\n\t"
            :"=r"(resource)
            :"r"(resource)
            :"eax","ebx"
        ); 
}

void SpinLock::unlock(u32& resource ) 
{ 
    __asm__ __volatile__
        (
                /* "mov DWORD PTR ds:[%0],0x00\n\t" */
                "mov ebx, %0\n\t"
                "mov DWORD PTR [ebx], 0x00\n\t"
                :"=r"(resource)
                :"r"(resource)
                : "ebx"               
        );      
}
Run Code Online (Sandbox Code Playgroud)

此代码在64位intel机器上使用 gcc 4.5.2 编译 -masm=intel.

objdump 用于上述功能产生以下组件.

0000000000490968 <_ZN8SpinLock4lockERj>:
  490968:       55                      push   %rbp
  490969:       48 89 …
Run Code Online (Sandbox Code Playgroud)

c++ gcc x86-64 inline-assembly

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