小编Eri*_*ang的帖子

c-F_GETFL和F_SETFL的用法

在尝试fcntl()与command F_GETFL和结合使用时F_SETFL,我遇到了一些问题:

  1. 为什么fcntl(fd, F_GETFL)打开文件时返回的标志仅包含我设置的位的子集?它仅显示可修改的内容吗?

  2. 使用时fcntl(fd, F_SETFL, flag),我应该如何传递标志参数,我是否需要先通过标志读取标志fcntl(fd, F_GETFL),然后对其进行修改并传递它?还是在内部它只是&对新的参数做了一点操作?

  3. 在哪里可以找到打开文件标志的32位(或更少)位的完整列表?

代码-[dup_fd_share.c]:

// prove duplicated fd shared file offset and open file status,
// TLPI exercise 5.5

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>

#define BUF_SIZE 100

void fd_share() {
    char *fp = "/tmp/fd_share.txt";
    char *buf = "abc\n";
    int write_size = 4;
    int fd, fd2;
    off_t cur, cur2;
    int open_flag, open_flag2;

    // open
    int flag = …
Run Code Online (Sandbox Code Playgroud)

c file-io fcntl

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

spymemcache - MemcachedClient 有内置连接池吗?

我正在使用memcached,并使用 Javaspymemcache连接到它。

我的问题是:

是否MemcachedClient有内置的连接池?

我可以重用类的实例在 memcached 上进行并发操作,还是每次需要时都需要创建一个新实例?

java memcached spymemcached

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

如何在 Linux 上为 Maven 安装手册页?

我正在使用 linux(mint mate),并通过下载 & 解压缩 & 配置环境安装了 maven,我可以使用该mvn命令。

我想要man mvn,不只是mvn -help,任何小费?


@更新:

为了说明问题,没有 的手册页mvn,因为我通过解压缩安装了 maven,所以我想安装 的手册页mvn,以便我可以man mvn用来获取帮助。

java linux manpage maven

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

Java日志框架 - 支持printf()

在c中,printf()真的很容易使用,而且在Java System.out.printf()中也是惊人的,但在log4j,似乎只能使用"First name: "+ firstName +", Age: " + age,这是非常不舒服的.

问题是:

  • 阻止log4j实现这样一个功能有什么困难?
  • 什么日志框架支持这样的功能,你可以给出一个包含maven依赖项和Java代码的简短示例.

java logging printf log4j

5
推荐指数
2
解决办法
3734
查看次数

Github - 有时无法通过 ssh 连接

情况

我正在使用 linux ( mint mate 17.2 ),当通过 ssh 推送到 github 时,有时连接失败,通常在重新启动计算机和网络后恢复。几天后,它可能会再次变坏,相当混乱。

通过http推送从来没有这样的问题,但它需要密码,不方便。

调试信息

通过 ssh 推送时:

debug1:连接到 github.com [192.30.252.129] 端口 22。

它卡在上面的行。

然后经过漫长的等待,得到超时提示:

debug1:连接到地址 192.30.252.129 端口 22:连接超时

ssh:连接到主机 github.com 端口 22:连接超时

致命:无法从远程存储库读取。

问题:

可能是什么原因,如何解决?


更多调试信息:

平是好的:

eric@eric-pc:~$ ping 192.30.252.129
PING 192.30.252.129 (192.30.252.129) 56(84) bytes of data.
64 bytes from 192.30.252.129: icmp_seq=1 ttl=50 time=345 ms
64 bytes from 192.30.252.129: icmp_seq=2 ttl=50 time=452 ms
64 bytes from 192.30.252.129: icmp_seq=3 ttl=50 time=373 ms
64 bytes from 192.30.252.129: icmp_seq=4 ttl=50 time=349 ms
64 …
Run Code Online (Sandbox Code Playgroud)

git ssh openssh github ssh-agent

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

Gdb - 打印数组或数组元素,具有各种大小的元素

汇编代码( yasm):

section .data
src db 1,2,3
Run Code Online (Sandbox Code Playgroud)

数组的每个元素src都是 1 个字节。

在 中GDB,如何打印整个数组或指定索引处的元素,例如打印值为 2 的元素。

assembly gdb

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

G1 GC:什么是SATB缓冲区?

在Java 8中G1 GC,什么是SATB缓冲区?

我在http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html中看到了这个术语

通过谷歌搜索后,没有找到它的定义.

有帮助吗?谢谢.

java jvm g1gc

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

Git-如何在Linux上正确杀死ssh-agent

我在linux上使用git时,推送到gitlab时,有时卡在:

debug1:连接到gitlab.com [52.167.219.168]端口22。

要么

debug1:client_input_channel_req:通道0 rtype keepalive@openssh.com回复1

debug3:发送数据包:类型100

重新启动linux似乎可以解决问题,但是没有人喜欢重新启动计算机。因此,我试图杀死ssh-agent进程,然后重新启动它。

但是该过程总是defunct在杀死之后,然后我根本无法通过ssh使用git,那么是否有任何方法可以重新启动ssh-agent,或解决上述问题而无需重新启动计算机?


@更新

我使用的ssh密钥包括密钥短语,我将在首次使用ssh密钥时输入该短语。

问题通常发生在我将Linux桌面从睡眠状态恢复后,因此重新连接了网络,不确定这是否重要?

再说一次,是否有人知道如何杀死或重新启动ssh-agent代理而不使其成为代理defunct?

linux git ssh ssh-agent

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

Gradle - 将“编译”更改为“实现”出现错误

build.gradle - 部分:

    dependencies {
        compile 'org.codehaus.groovy:groovy-all:2.4.15'
    }
Run Code Online (Sandbox Code Playgroud)

如果更改compile为implementation,在构建时将出现以下错误:

任务 ':greeter:compileJava 执行失败

改回去然后构建就会成功。

尖端:

  • 项目正在使用Gradle 4.10,里面做支持implementation。
  • 还有其他依赖项,在子项目中,更改使用implementation不会导致问题,只有这一行会导致问题。

有什么帮助吗?

groovy gradle build.gradle

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

在 IDEA 中,如何自动删除 .attach_pidxxx 文件

在 中运行 Java 测试用例(TestNG测试,如果重要)后IDEA,将在项目根目录下创建一个名为.attach_pid<xxx>(例如.attach_pid16153)的文件。

即使在测试用例完成后,它们仍然存在。

而且过一段时间,这样的文件会很多,我不得不手动删除它们。

问题是:

  • 在单元测试或其他类型的运行/调试终止后,是否有自动删除它们的配置?

java intellij-idea

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