小编pev*_*vik的帖子

如何从脚本编辑/ etc/sudoers?

我需要/etc/sudoers从脚本编辑以添加/删除白名单中的内容.

假设我有一个可以在普通文件上运行的命令,我该如何应用它/etc/sudoers

我可以复制和修改它,然后visudo用修改过的副本替换原件吗?通过提供我自己的脚本$EDITOR

或者我可以使用相同的锁和cp

问题更多的是关于潜在的问题,而不仅仅是找到有用的东西.

linux shell sudo

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

如何从C中的函数指针获取函数的名称?

如何从C中的函数指针获取函数的名称?

编辑:真实情况是:我正在编写一个Linux内核模块,我正在调用内核函数.其中一些函数是指针,我想检查内核源代码中该函数的代码.但我不知道它指向哪个功能.我认为可以这样做,因为当系统出现故障(内核崩溃)时,它会在屏幕上打印出具有函数名称的当前callstack.但是,我想我错了......是吗?

c function-pointers linux-kernel

56
推荐指数
4
解决办法
6万
查看次数

为什么使用asprintf()而不是sprintf()?

我很难理解你为什么需要asprintf.它在手册中说

的功能asprintf()vasprintf()是的类似物sprintf(3)vsprintf(3),除了它们分配一个字符串足够大以容纳包括终止空字节的输出,并且经由第一个参数的指针返回到它.应该传递此指针 free(3)以在不再需要时释放已分配的存储.

所以这是我试图理解的例子:

asprintf(&buffer, "/bin/echo %s is cool", getenv("USER"));
Run Code Online (Sandbox Code Playgroud)

如果缓冲区分配足够大的字符串而不是说char*=(字符串),那有什么区别

c printf gnu asprintf

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

sockaddr,sockaddr_in和sockaddr_in6有什么区别?

我知道sockaddr_in用于IPv4,sockaddr_in6用于IPv6.我的困惑是sockaddr和sockaddr_in之间的区别[6].

有些函数接受sockaddr,有些函数接受sockaddr_insockaddr_in6,所以:

  • 规则是什么?
  • 为什么需要两种不同的结构?

而且因为sizeof(sockaddr_in6) > sizeof(sockaddr) == sizeof(sockaddr_in).

  • 这是否意味着如果我们需要支持ipv4和ipv6,我们应该总是使用sockaddr_in6在堆栈中分配内存并转换为sockaddr和sockaddr_in?

一个例子是:我们有一个套接字,我们想得到它的字符串IP地址(它可以是ipv4或ipv6).

我们首先打电话getsockname来获得一个addr然后inet_ntop基于的电话addr.sa_family.

这段代码片段有什么问题吗?

char ipStr[256];
sockaddr_in6 addr_inv6;
sockaddr* addr = (sockaddr*)&addr_inv6;
sockaddr_in* addr_in = (sockaddr_in*)&addr_inv6;

socklen_t len = sizeof(addr_inv6);
getsockname(_socket, addr, &len);

if (addr->sa_family == AF_INET6) {
    inet_ntop(addr_inv6.sin6_family, &addr_inv6.sin6_addr, ipStr, sizeof(ipStr)); 
    // <<<<<<<<IS THIS LINE VALID, getsockname expected a sockaddr, but we use 
    // it output parameter as sockaddr_in6.
} else {
    inet_ntop(addr_in->sin_family, &addr_in->sin_addr, …
Run Code Online (Sandbox Code Playgroud)

c c++ api network-programming

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

创建产品SDK:如何使用我正在创建的SDK添加本机库(.so)和jar?

我正在创建一个我们将提供给开发人员最终用户的小部件,它包含一个.jar.so使用NDK构建的本机库().JAR具有动态库的JNI接口.

关于如何.jar在项目中包含外部而非如何包含依赖动态库非常清楚.

  1. 我如何打包并构建.jar.so?这里的最佳做法是什么?

  2. 我可以使用JDK的jar命令创建JAR文件.我是否需要在jar上运行dx.bat才能转换为Dalvik字节码?

  3. 我需要创建一个示例项目来显示正在运行的小部件.如何包括这.jar.so在演示如何使用控件的示例项目?

android jar android-ndk

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

Makefile ifeq逻辑AND

我想在ifGNU make文件的循环中检查多个条件.这是一个例子:

ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE))
true statement 
else 
false statement
endif
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法呢?

unix boolean-logic gnu makefile gnu-make

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

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

C中1U和1之间有什么区别吗?

    while ((1U << i) < nSize) {
        i++;
    }
Run Code Online (Sandbox Code Playgroud)

用什么特别的理由1U代替1

c integer

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

三元运营商.可以采取单方面行动?

我已经使用了三元运算符一段时间了,并且想知道是否有一种方法可以让没有该else子句的函数调用.例:

if (isset($foo)) {
    callFunction();
} else {

}
Run Code Online (Sandbox Code Playgroud)

现在显然我们可以省略else:

if (isset($foo)) {
    callFunction();
}
Run Code Online (Sandbox Code Playgroud)

现在对于三元组如果条件返回false,你怎么能通过'else子句'?

isset($foo) ? callFunction() : 'do nothing!!';
Run Code Online (Sandbox Code Playgroud)

要么是神秘还是不可能?

php ternary-operator

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

字符串到GZIPOutputStream

我试过搜索,找不到任何东西.我正在尝试做的是我循环遍历一个列表,我正在从多个列表中的项目组合构造一个字符串.然后我想将这些字符串转储到gzip压缩文件.我得到它只是将它转储到一个简单的ascii文本文件,但我似乎无法让它与gzipoutputstream一起工作.基本上,

循环创建字符串转储字符串到gzipped文件endloop

如果可能的话,我想避免转储到纯文本文件然后gzipping它,因为这些文件将几乎100兆.

java compression gzip gzipoutputstream

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