我正在研究 X.509 v3 证书,想知道它们的确切结构。是否有可以使用的 ASN.1 规范?rfc 文档似乎只指定了其中的一部分......
假设char *str;,要测试空字符串,以下方法有效
/* Approrach 1 */
if (str && strlen(str) > 0) {
...
}
/* Approach 2 */
if (str && *str) {
...
}
Run Code Online (Sandbox Code Playgroud)
最适合使用什么?我认为第二个会更快,因为它不必迭代缓冲区来获取长度。使用第二个还有什么缺点吗?
我想暂停线程并恢复它。有上市一些方法在这里。但是我想到了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)