小编sal*_*ash的帖子

pthread互斥锁无法正常工作

我目前正在从麻省理工学院开放课件中学习C语言,在C语言中称为实践编程.在讨论多线程中的竞争条件时,讲义包含一个具有竞争条件的程序示例以及如何使用互斥锁解决它.代码在Linux系统上按预期工作,但在OS X上没有.

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

pthread_mutex_t mutex; // Added to fix race condition
unsigned int cnt = 0;

void *count(void *arg) {
    int i;
    for (i = 0; i < 100000000; i++) {
        pthread_mutex_lock(&mutex); // Added to fix race condition
        cnt++;
        pthread_mutex_unlock(&mutex); // Added to fix race condition
    }
    return NULL;
}

int main() {
    pthread_t tids[4];
    int i;
    for (i = 0; i < 4; i++)
        pthread_create(&tids[i], NULL, count, NULL);
    for (i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c multithreading mutex pthreads

4
推荐指数
1
解决办法
1791
查看次数

如何确定 zip 文件的加密方案

我正在查看加密的 zip 文件(使用 PKzip 格式),但我不明白加密方案是如何以二进制格式编码的。在我的研究中,我发现这篇论文概述了 PKzip 格式文件中使用的各种加密方案。我发现我一直在查看的加密文件与文章中概述的幻数格式 50 4b 03 04 相匹配。根据该论文,可以从文件中文件名后的 2 个字节确定所使用的加密方案类型(17 00 表示“强加密”,01 99 表示“WinZip AES 加密”)。它没有说明这样的签名对于“传统 PKWare 加密”。

我使用Keka创建了一个加密的 zip 文件来检查内容并查看使用了哪种加密。文章中提到的两个幻数都没有出现在文件名后面,而是找到了字节 54 73。事实上,在向我加密的明文文件中添加更多字节后,我注意到加密后,这些字节仅更改了一点点,表明它们实际上并不是所使用的加密方案的指标。我查看了 zipdetails 的输出,尝试查看是否有有关所使用的加密方案的更多详细信息,但输出只是表明文件已加密。是否有任何有用的工具可以分析和确定加密的 PKzip 文件中使用的加密方案?

compression encryption zip cryptography pkzip

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