小编Cra*_*enz的帖子

如何判断套接字缓冲区是否已满?

如何判断读取套接字缓冲区是否已满或写入套接字缓冲区是否为空?

有没有办法在没有系统调用的情况下获得套接字缓冲区的状态?

更新:怎么样:当读取套接字缓冲区已满或写入套接字缓冲区为空时,我想获得回调或信号.这样我就可以停止处理以允许在线路上发生更多的I/O,因为在线路上发送数据时,I/O限制总是一个问题.

select()电话是你如何检查是否读缓冲区中有一些东西.不是当它满了(我想).

c sockets

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

如何通过库名找到库的文件名?

如何通过库名找到库的文件名?

换句话说,当我使用"-lc"时,我知道它是/lib/libc.so.6(或类似的东西.)我希望能够输入一些命令,其中"-lc"是输入和"/ lib /libc.so.6"是输出.为了进一步扩展这个想法,我想指定我自己的搜索路径,这样我就可以将这个库解析器用于不同的工具链......任何帮助都会很棒,

谢谢Chenz

linker gcc dynamic-linking libraries

11
推荐指数
2
解决办法
3418
查看次数

C++ Public API的最佳实践是什么?

C++ Public API的最佳实践是什么?

我正在开发一个具有多个名称空间的C++项目,每个名称空间都有多个对象.某些对象具有相同的名称,但位于不同的名称空间中.目前,每个对象都有自己的.cpp文件和.h文件.我不确定如何说出这个...是否适合创建第二个.h文件以仅公开公共API?它们应该是每个命名空间,每个对象还是其他范围的.h文件?为C++库创建公共API的最佳做法是什么?

感谢任何帮助,Chenz

c++ api

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

如何判断文件是否在Linux上的其他位置打开?

如何判断文件是否在C中打开?我认为更技术性的问题是如何检索对现有文件的引用数量,并确定是否可以安全打开该信息.

我正在实现的想法是文件队列.你转储一些文件,我的代码处理文件.在生产者关闭文件描述符之前,我不想开始处理.

一切都在linux中完成.

谢谢,陈兹

c linux file-io

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

如何在automake中设置库的顺序?

如何在automake中设置库的顺序?

在我的文件中,我有类似的东西:

myprog_DEPENDENCIES = adhoc-target
myprog_SOURCES = myprog.c
myprog_LDADD = libmine.la
myprog_LDFLAGS = -static -L/home/user/lib -ladhoc
Run Code Online (Sandbox Code Playgroud)

现在,当我编译时,我也得到了类似的编译行:

gcc -static myprog-myprog.o -o myprog -L/home/user/lib -ladhoc ./.libs/libmine.a
Run Code Online (Sandbox Code Playgroud)

问题是libmine.a依赖于libadhoc.a,因此编译行应该是:

gcc -static myprog-myprog.o -o myprog ./.libs/libmine.a -L/home/user/lib -ladhoc
Run Code Online (Sandbox Code Playgroud)

如何在automake中设置库的顺序?(或者可能是一个解决方法;如何重复编译行中的所有库.这就是我在自定义Makefile中所做的.)

c automake autoconf gcc autotools

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

我可以在不使用构造函数的情况下在Java中设置String的值吗?

How-Do /我可以在Java中设置String对象的值(不创建新的String对象)吗?

java string

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

如何在没有Valgrind错误的情况下调用JNI_CreateJavaVM?

在valgrind下编译并运行以下代码时,我始终得到"无效写入大小4"错误.是否有一种干净的方式来调用JNI_CreateJavaVM(),以便valgrind不合适?

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

int main()
{
    JavaVMInitArgs * vm_args = calloc(1, sizeof(JavaVMInitArgs));
    JavaVM * jvm = NULL;
    JNIEnv * env = NULL;

    vm_args->version = JNI_VERSION_1_6;
    vm_args->nOptions = 0;
    vm_args->options = NULL;

    JNI_CreateJavaVM(&jvm, (void **)&env, vm_args);

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

这是我正在运行的valgrind命令:

valgrind --tool=memcheck --leak-check=yes --num-callers=20 --smc-check=all ./test
Run Code Online (Sandbox Code Playgroud)

我的loooonng valgrind日志中的一个条目:

==9004== Invalid write of size 4
==9004==    at 0x4D5A3C8: ???
==9004==    by 0x4D512CB: ???
==9004==    by 0x423374F: JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*) (in /usr/java/jdk1.6.0_21/jre/lib/i386/client/libjvm.so)
==9004==    by 0x4361B67: os::os_exception_wrapper(void (*)(JavaValue*, methodHandle*, …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface valgrind

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

How to validate an LDIF?

How to validate an LDIF?

Similar to XML, XMLSchema and Schematron are there any libraries to validate an LDIF with an LDAP schema?

validation schema ldap ldif

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

在C/Java项目中,管理构建的适当方法是什么?

在C/Java项目中,管理构建的适当方法是什么?

我最初正在考虑使用Autotools构建所有C,使用Apache Ant构建Java中的所有内容,然后让每个构建器"执行"另一个构建器.

另一种方法可能是在Autotools中完成所有工作.我更喜欢autotools而不是ant,因为我不知道任何类似Autoconf的Ant应用程序.

该项目是一个JNI项目,它在语言之间具有相同/对称的责任,换句话说,它应该可供仅限Java的开发人员和仅限C的开发人员以及Java-C开发人员使用.

谢谢,陈兹

c java ant makefile autotools

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

增加引用计数的经验法则是什么?

将引用计数对象发送到其他线程时,在启动线程之前或在线程内增加计数是否更好的经验法则?

在更一般的意义上,我(作为一个函数)是否应该假设传递给我的参数已经被考虑?

c reference thread-safety

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