小编sol*_*tim的帖子

如何在内存中获取缓冲区的文件描述符?

如果我有一个包含文件数据的缓冲区,我该如何从中获取文件描述符?这是一个从内存中解压缩文件的问题

c

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

Java:检查符号链接文件是否存在

我们在这里谈论java 1.6.由于尚未支持symoblic链接,如何检查它们的存在.

1:告诉链接文件本身是否存在(即使链接断开也返回true)

2:按照链接告诉wheather底层文件存在.

除了JNI,真的没有办法实现这个吗?

java symlink

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

Eclipse有没有增强的gdb控制台?

目前,Eclipse的gdb控制台只是连接java gui和底层gdb进程之间的stdin/stdout,因此缺少许多gdb shell功能,例如tab-autocomplete,命令历史记录等.

我想知道是否有一个增强的控制台用于快速gdb交互.我非常喜欢经常使用的gdb命令,如"print"和"call"等.IMHO,"print"命令有时比Eclipse"Expression watcher"更高级,因为它只执行一次,后者将随时进行评估并崩溃 - 易于.

如果你认为不需要使用gdb控制台,那么你最好用gdb UI练习eclipse UI转移.

c c++ eclipse gdb

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

我可以从stdin运行Perl脚本吗?

假设我有一个Perl脚本,即mytest.pl.我可以用类似的东西来运行它cat mytest.pl | perl -e吗?

我想这样做的原因是我有一个加密的perl脚本,我可以在我的c程序中解密它,我想在我的c程序中运行它.由于存在安全问题,我不想将解密的脚本写回硬盘,所以我需要在内存中运行这个perl脚本.

这个问题与cat命令无关,我只想知道如何将perl脚本提供给stdin,并让perl解释器运行它.

perl

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

从java调用shell,它抱怨"stty:标准输入:无效的参数"

我从java调用Process类的shell命令并打印

"stty: standard input: Invalid argument" 
Run Code Online (Sandbox Code Playgroud)

无论命令是对还是错(也显示shell命令的正常输出).如果我在shell中运行shell命令,则不会显示此类错误消息.

命令是这样的: {"/bin/csh", "-c", "echo hello"}

java bash csh

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

程序是否需要.so共享库中的其他符号,但头文件中声明的符号除外?

在C编程中,我认为只要.so文件提供了在头文件中声明的所有符号,就可以成功地将目标文件与.so文件链接.

假设我有foo.c,bar.h和两个库libbar.so.1和libbar.so.2.libbar.so.1和libbar.so.2的实现完全不同,但我认为只要它们都提供在bar.h中声明的函数就可以了.

我将foo.o与libbar.so.1链接并生成了一个可执行文件:foo.bin.当libbar.so.1在LD_LIBRARY_PATH中时,此可执行文件有效.(当然,符号链接是libbar.so)但是,当我将符号链接更改为libbar.so.2时,foo.bin无法运行并抱怨此:

 undefined symbol: _ZSt4cerr
Run Code Online (Sandbox Code Playgroud)

libbar.so.1是一个c ++构建的库,而libbar.so.2是一个ac构建的库.我不明白为什么foo.bin需要那些仅在libbar.so.1本身有意义的c ++相关符号,因为foo.bin是基于纯c代码foo.c构建的.

c shared symbols libraries

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

如何编写C .so库来替换现有的C++ .so库?

让我解释一下这个场景.我们有一个遗留的C++编译的.so库.此库中的函数是使用声明的extern "c" {},因此C和C++程序都可以使用该库,并且由于某种原因它是使用--static-libgcc选项创建的.

这个旧图书馆很旧,很难维护.现在我们已经设法写了它的替代,但是用C语言编写.假设旧库名为libfoo.so(旧),新库名为libfoo.so(新).对于给定的bar.o,它可以与旧的或新的libfoo.so链接以创建可执行文件,例如bar.exe.但是bar.exe只能运行它之前链接的相同.so库,换句话说,这两个库不能互换.

编辑#1:我创建了一个名为libfoo.so的符号链接,指向libfoo.so(旧)或libfoo.so(新).此符号链接libfoo.so在运行时位于LD_LIBRARY_PATH中.

编辑#2:当我将bar.o与旧的libfoo.so链接并生成bar.exe时,如果我使用新的libfoo.so运行此bar.exe,则报告错误为undefined symbols.通过nm这两个libfoo.so,我可以在旧的符号中找到这些符号,但不能在新的符号中找到.符号类似于_ZSt4cerr,这是一个C++ lib损坏的名称(虽然它是由它带来的--static-libgcc),当然新的libfoo.so不包含那种符号.

编辑#3:如果我只是使用g ++而不是gcc编译和链接C代码,它是否有意义?

我该如何实现呢?

编辑#4:今天我设法使用g ++(使用静态libgcc,静态libstdc ++)编译/链接新的C编程libfoo,这可能导致所有c ++符号都包含在libfoo.so中.这可以使一切运行顺利,但不是我真正想要的.

c c++ gcc shared-libraries

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

SWT RowLayout从右到左?

我已经阅读了文章了解SWT布局,但我无法找到一种方法将几个按钮以从右到左的方式放入容器中.

我怎样才能做到这一点?

java eclipse swt

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

为什么物理地址结构的高部分被定义为有符号类型?

我看到一些物理地址结构定义如下:

typedef union {
   struct {
       ULONG LowPart;
       LONG HighPart;
   } u;
   LONGLONG QuadPart;
} PHYSICAL_ADDRESS;
Run Code Online (Sandbox Code Playgroud)

我不明白为什么高部分被定义为签名类型...任何人都可以解释一下吗?

c windows

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

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

标签 统计

c ×6

java ×3

c++ ×2

eclipse ×2

bash ×1

c-preprocessor ×1

csh ×1

gcc ×1

gdb ×1

libraries ×1

perl ×1

shared ×1

shared-libraries ×1

swt ×1

symbols ×1

symlink ×1

windows ×1