小编use*_*513的帖子

指针/结构问题C.

我有以下代码段segfaults,我完全不知道为什么.任何帮助将非常感谢.

我执行此操作时会发生段错误(检查是否所有内容都已正确初始化).没有打印任何内容,因此它在第一行上出现了段错误.不幸的是我不能使用valgrind,因为这个代码位于我无法访问的沙箱中,因此无法检查那里的问题.

for (i = 0 ; i<nb_read ; i++) {

 fprintf(stdout, "Read Lock i %d  %p \n ",i, nap->read_buffer[i]->sem_handle); 
 fprintf(stdout, "Write Lock i %d  %p \n ",i, nap->write_buffer[i]->sem_handle);  
 fprintf(stdout, "Read Buffer i %d  %p \n ",i, nap->read_buffer[i]->buffer); 
 fprintf(stdout, "Write Buffer i %d  %p \n ",i, nap->write_buffer[i]->buffer); 

}
Run Code Online (Sandbox Code Playgroud)

其中SharedStruct是一个带有char*缓冲区成员和int sem_handle的结构

SharedStruct** create_buffer(int nb, int size) {
SharedStruct** result = malloc(nb * sizeof(SharedStruct*));
int i = 0 ;
for (i = 0 ; i<nb ; i++) {
        SharedStruct* res= malloc(nb *sizeof(SharedStruct)); …
Run Code Online (Sandbox Code Playgroud)

c constructor pointers segmentation-fault

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

Python SSH命令

我有以下代码:

def executeRemoteCommand(host, command):
    cmd = "ssh " + host + " \'" + command + "\'"
    print cmd
    subprocess.check_call(cmd)
Run Code Online (Sandbox Code Playgroud)

当我运行命令时:

java -Xss515m -Xms48g -Xmx48g -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -jar /local/experiments/helloworld/ro/server.jar /local/experiments/helloworld/ro/properties.json
Run Code Online (Sandbox Code Playgroud)

使用上面的函数,我得到以下错误

File "./util/ssh_util.py", line 85, in executeRemoteCommand
    subprocess.check_call(cmd)
  File "/usr/lib/python2.7/subprocess.py", line 506, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file …
Run Code Online (Sandbox Code Playgroud)

python

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

对象数组数组(二维数组)JNI

我正在努力创建我的自定义对象类型ShareStruct的二维数组:

jobjectArray ret ;
jobjectArray ins ;
jobjectArray outs;

jclass myClass = (*env)->FindClass(env,"org/apache/s4/core/ShareStruct");
if (myClass==NULL) fprintf(stderr, "Class ShareStruct not found");

jclass myClassArray = (*env)->FindClass(env, "[Lorg/apache/s4/core/ShareStruct");
if (myClassArray==NULL) fprintf(stderr, "Class ShareStruct[] not found");

ins = (*env)->NewObjectArray(env, in, myClass, NULL);
outs = (*env)->NewObjectArray(env, out, myClass, NULL);
ret = (*env)->NewObjectArray(env, 2, myClassArray, NULL);
Run Code Online (Sandbox Code Playgroud)

第一个类加载有效(ShareStruct很好),而另一个(尝试加载ShareStruct []类)则无效。我已经尝试过带或不带L,但没有运气。有任何想法吗?我是JNI的新手。

谢谢!

java arrays java-native-interface

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

阻止行为 - 并发数据结构Java

我目前正在运行一个高度并发的基准测试,它ConcurrentSkipList从Java集合中访问一个.我发现线程在该方法中被阻塞,更准确地说:

java.util.concurrent.ConcurrentSkipListMap.doGet(ConcurrentSkipListMap.java:828)    
java.util.concurrent.ConcurrentSkipListMap.get(ConcurrentSkipListMap.java:1626)
Run Code Online (Sandbox Code Playgroud)

(这是通过超过10秒的间隔打印每个单独线程的堆栈跟踪获得的).几分钟后仍未解决

这是集合的预期行为吗?什么是可能遇到阻塞的并发其他集合?

经过测试,我表现出与ConcurrentHashMaps 相似的行为:

java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:994)
Run Code Online (Sandbox Code Playgroud)

java collections concurrency multithreading synchronization

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