小编shu*_*ham的帖子

X.509 v3 证书是否有 ASN.1 规范

我正在研究 X.509 v3 证书,想知道它们的确切结构。是否有可以使用的 ASN.1 规范?rfc 文档似乎只指定了其中的一部分......

ssl asn.1 certificate x509

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

测试零长度字符串的有效方法是什么:“strlen(str) > 0”或“*str”

假设char *str;,要测试空字符串,以下方法有效

/* Approrach 1 */
if (str && strlen(str) > 0) {
    ... 
}

/* Approach 2 */
if (str && *str) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

最适合使用什么?我认为第二个会更快,因为它不必迭代缓冲区来获取长度。使用第二个还有什么缺点吗?

c strlen

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

在信号处理程序中使用`pause()`有什么陷阱?

我想暂停线程并恢复它。有上市一些方法在这里。但是我想到了pause()从使用库函数unistd.h

在信号处理程序中使用暂停有哪些陷阱?

我注意到的一个是,当我发送0到暂停线程并0再次发送时,我的信号已排队。我需要发送1两次以恢复线程。

我猜可能还会有更多类似的情况。如果要使用信号处理程序pause()sleep()在信号处理程序中如何处理此类情况。

#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <stdbool.h>

static bool thread_ready = false;

static void cb_sig(int signal)
{
        if (signal == SIGUSR1)
                pause();
        else if (signal == SIGUSR2)
                ;
}

static void *thread_job(void *ignore)
{
        int i = 0;
        struct sigaction act;

        sigemptyset(&act.sa_mask);
        act.sa_flags = 0;
        act.sa_handler = cb_sig;

        if (sigaction(SIGUSR1, &act, NULL) == -1)
                printf("unable to handle …
Run Code Online (Sandbox Code Playgroud)

c pthreads signal-handling

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

标签 统计

c ×2

asn.1 ×1

certificate ×1

pthreads ×1

signal-handling ×1

ssl ×1

strlen ×1

x509 ×1