小编nit*_*itz的帖子

在Linux上放置命名管道的适当位置是什么?

我有一些通过命名管道相互通信的进程.目前,我在本地创建所有管道,并将应用程序保存在同一个工作目录中.在某些时候,假设这些程序可以(并且将)从不同的目录运行.我需要创建我在已知位置使用的这些管道,因此所有不同的应用程序都能够找到所需的管道.

我是Linux新手,不熟悉文件系统结构.在Windows中,我使用像AppData文件夹这样的东西来保存这些管道.我不确定Linux中的等价物是什么.

/tmp目录看起来可能很好地运行.我已经在一些地方看到它已经在系统关闭时被清除了(这很好,当我开始备份时,我可能不会重新创建管道.)但是我看到其他一些人说他们正在丢失文件当系统启动时,好像它是定期清理的,当我的应用程序使用这些管道时我不想发生这种情况!

是否有更适合特定应用商店的地方?或者/tmp是我想要保留这些的地方(因为它们毕竟是暂时的).

linux filesystems pipe named-pipes tmp

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

如何在jar中从Android应用程序加载本机共享对象?

我有一个共享对象,我称之为'libFoo.so',针对NDK进行编译.我有一个java项目(我称之为'jarlib')通过调用来利用该共享对象

System.loadLibrary("Foo");
Run Code Online (Sandbox Code Playgroud)

那个java项目,我作为jar导出,并在android应用程序中使用.如果我注释掉有关共享对象的所有内容,那么jar工作正常,并且我能够完美地与它进行交互.

我可以使用jarlib,以及来自Unity android应用程序的共享对象和./lib/armeabi/libFoo.so中的共享对象,并将它加载到所有peachy.

我正在尝试在我的非统一Android应用程序中使用jarlib和libFoo.so,而loadLibrary绝对拒绝找到libFoo.so.我已经尝试放置它,所以它将被包含在我的apk中./lib,以及./lib/armeabi,似乎没有任何东西使加载调用看到它.

我已经尝试在jarlib的./lib或./lib/armeabi中包含libFoo.so,但是一旦我尝试构建/运行我的Android应用程序,我就会被告知:

The library 'jarlib.jar' contains native libraries that will not run on the device.
The following libraries were found:
  - libFoo.so
Run Code Online (Sandbox Code Playgroud)

有这个,如果它在./lib(不是./lib/armeabi)

Additionally some of those libraries will interfer with the installation of the application because of their location in lib/
lib/ is reserved for NDK libraries.
Run Code Online (Sandbox Code Playgroud)

我不确定我缺少什么组合,但我确信它可以完成,我似乎无法弄明白该怎么做!

android shared-libraries

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

我自己 pthread_join 是否可以接受且安全?

我的设置有点像这样:

void* work(void*) { while (true) {/*do work*/} return 0;}

class WorkDoer
{
private:
    pthread_t id;
public:
    WorkDoer() { pthread_create(&id, NULL, work, (void*)this); }
    void Shutdown() { pthread_join(id, NULL); /*other cleanup*/ }
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,Shutdown()从主线程调用,而在其他一些情况下,我想从线程本身内部调用关闭(之后立即从该线程返回)。

的文档说,如果调用线程与传递的线程相同,pthread_join()它将返回 a 。EDEADLK

我的问题是:这样做可以吗?如果可以的话安全吗?(因此忽略连接失败,因为无论如何我很快就会很好地结束线程?)或者,这是应该避免的事情吗?

c++ pthreads thread-safety

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