Articles of Ubuntu

Ubuntu上的套接字(不允许操作)

我是newbee,只是在linux下开始我的第一步。 所以我有一些关于套接字的任务。 我遵循指南,尤其是这一个。 而代码示例不起作用。 我从这开始: #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #define SOCK_PATH "echo_socket" int main(void) { int s, s2, t, len; struct sockaddr_un local, remote; char str[100]; if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } local.sun_family = AF_UNIX; strcpy(local.sun_path, SOCK_PATH); unlink(local.sun_path); len […]

在Ubuntu上运行docker:挂载的主机卷不能从容器写入

Docker在我的Mac上工作得很好,但是我必须在VirtualBox(或者Parallels或者VMWare Fusion)里面运行docker主机,因为Mac的内核不支持docker。 所以我试图设置我的应用程序和docker-compose在Ubuntu桌面 – 本地,docker客户端和docker主机都在同一个系统上物理运行。 这工作,但我的运行docker集装箱不能写入已安装的主机卷。 我使用docker-compose进行以下设置: volumes: – ./api:/usr/src/app 因此,我将主机Ubuntu OS的“api”目录挂载到/ usr / src / app下的docker容器中。 docker inspect <container ID>显示该卷是可写的 "Destination": "/usr/src/app", "Mode": "rw", "RW": true 然而,这不是:当我尝试创build一个目录或从docker容器内编辑一个文件时,我得到permission denied 。 当然,我search了这个问题,并且遇到了几个CentOS / RHEL的SELinux问题,但是我运行Ubuntu 15.10,64位版本 ,而不是CentOS。

如何将环境variables传递给Ubuntu上的Netbeans Makefile?

我在Linux上使用Netbeans(Ubuntu 9.04)来构build一个C项目。 我如何传递一个环境variables,使其对Makefile可见? 如果我做一个正常的export MYVAR="xyz" ,然后从命令行运行make这当然工作正常。 但Netbeans似乎并没有使用.bashrc环境,所以如果我在Netbeans中点击“build”,make就会失败。 有趣的是,这个问题似乎并没有发生在MacOSX上 – 我已经将该variables添加到~/.MacOSX/environment.plist ,并且该值对Netbeans可见。 我发现这个post提示修改~/netbeans-6.8/etc/netbeans.conf 。 我已经试过了,通过在netbeans_default_options的末尾添加-J-DMYVAR=xyz ,即: netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-DMYVAR=xyz" 但是这似乎没有工作。

无法使用静态TLS加载更多对象

我有一个应用程序使用dlopen()来加载额外的模块。 应用程序和模块是在Ubuntu 12.04 x86_64上使用gcc 4.6而构build的,但是为了i386 arch。 然后将二进制文件复制到具有完全相同的操作系统的另一台机器,并正常工作 但是,如果它们被复制到Ubuntu 12.04 i386,则一些(但不是全部)模块将无法加载以下消息: dlopen: cannot load any more object with static TLS 我怀疑这是由__threadvariables的使用引起的。 但是,这些variables不会在加载的模块中使用 – 只能在加载器模块本身中使用。 有人可以提供任何额外的信息,可以是什么原因? 我正在减less__threadvariables的数量并优化它们(使用-ftls-model等),我只是好奇它为什么不能在几乎相同的系统上工作。

perf使调用图的demangling

如何为perf callgraph启用C ++ demangling? 当我进入注释模式时,似乎可以将符号去掉,但不会在主调用图中显示。 示例代码(使用Google Benchmark ): #include <benchmark/benchmark.h> #include <vector> static __attribute__ ((noinline)) int my_really_big_function() { for(size_t i = 0; i < 1000; ++i) { benchmark::DoNotOptimize(i % 5); } return 0; } static __attribute__ ((noinline)) void caller1() { for(size_t i = 0; i < 1000; ++i) { benchmark::DoNotOptimize(my_really_big_function()); benchmark::DoNotOptimize(i % 5); } } […]

Android模拟器不会启动,AVD

这是我的情况:我有Ubuntu 10.04 LTS 64位下的XPS 我用eclipse下载了最新的Android SDK。 该SDK工作正常,但是当我创build一个新的AVD,我运行。 我的AVD加载但不显示。 我不明白,你有关于我的问题的想法? 谢谢 我从命令行开始我的avd: romain@XPS-Dak:~/.android$ emulator -verbose -avd Test emulator: found SDK root at /home/romain/android-sdk-linux emulator: Android virtual device file at: /home/romain/.android/avd/Test.ini emulator: virtual device content at /home/romain/.android/avd/Test.avd emulator: virtual device config file: /home/romain/.android/avd/Test.avd/config.ini emulator: using core hw config path: /home/romain/.android/avd/Test.avd/hardware-qemu.ini emulator: Found AVD target API level: 3 […]

clock_gettime()足够亚微秒时间吗?

在我们的应用程序的Linux版本中,我需要一个embedded式分析器的高分辨率定时器。 我们的分析器测量范围与个别function一样小,所以它需要一个精度高于25纳秒的定时器。 以前我们的实现使用内联汇编和rdtsc操作直接从CPU查询高频定时器,但是这是有问题的 ,需要频繁的重新校准。 所以我尝试使用clock_gettime函数来查询CLOCK_PROCESS_CPUTIME_ID。 文档声称这给了我纳秒的时间,但我发现clock_gettime()的单个调用的开销超过250ns。 这使得无法将事件的时间长度设置为100ns,并且定时器function如此高的开销严重拖慢了应用程序的性能,扭曲了configuration文件的价值。 (我们每秒有成千上万的性能分析节点。) 有没有办法调用clock_gettime()开销小于¼μs? 还是有一些其他的方式,我可以可靠地获得时间戳计数器<25ns的开销? 或者我坚持使用rdtsc ? 下面是我用来clock_gettime()的代码。 // calls gettimeofday() to return wall-clock time in seconds: extern double Get_FloatTime(); enum { TESTRUNS = 1024*1024*4 }; // time the high-frequency timer against the wall clock { double fa = Get_FloatTime(); timespec spec; clock_getres( CLOCK_PROCESS_CPUTIME_ID, &spec ); printf("CLOCK_PROCESS_CPUTIME_ID resolution: %ld sec […]

我如何find哪个进程正在泄漏内存

我有一个系统(Ubuntu)与许多进程和一个(或多个)有内存泄漏。 有没有一种很好的方法来find泄漏的过程? 一些进程是JVM,有些则不是。 有些是本土的,有些是开源的。

ubuntu:所有的android模拟器(x86和arm)卡住“错误,当连接到套接字'127.0.0.1:1970':111 – >拒绝连接”

我已经尝试所有的Android模拟器,但他们都被困在以下步骤: emulator: Error while connecting to socket '127.0.0.1:1970': 111 -> Connection refused emulator: ASC 127.0.0.1:1970: Retrying connection. Connector FD = 这是我的cli: path/to/emulator64-x86 -avd x86 -debug all 这是我的完整日志 我的问题是 如何解决这个错误? 我的系统信息: No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 17 Qiana Release: 17 Codename: qiana

Ubuntu和SuSE的Java应用程序的安装程序/打包程序

我有一个Java应用程序符合我想要在Ubuntu和SuSE上安装的一系列jar文件。 我希望安装程序能够检查JRE,注册文件关联,并能够卸载时加载网站。 我了解Ubuntu和SuSE是基于不同的体系结构,那么是否有一致的方法来做到这一点? 有没有人有build议使用实用程序或指导阅读,以帮助我实现我想要做的事情。