c 相关问题

C是一种通用编程语言,用于系统编程(OS和嵌入式),库,游戏和跨平台。此标记应与有关C语言的一般问题一起使用,如ISO 9899标准(最新版本,9899:2018,除非另有说明)中所定义 - 也使用c89,c99,c11等标记特定于版本的请求。 C与C ++不同,它不应该在没有合理理由的情况下与C ++标签结合使用。

使用二维数组的矩阵乘法

我正在尝试学习二维数组。我偶然发现了一个问题。它表示使用名为 readMatrix() 的函数读取阶数为 a*b 和 m*n 的两个矩阵,使用 processMatric() 将矩阵相乘...

回答 1 投票 0

使用 execvp 重定向标准输出

这段代码基本上是二叉树的一小部分,节点是进程,它应该按顺序遍历树,将 num1 传递到左子树等。这只是创建一个左子树......

回答 1 投票 0

madvise() 在虚拟内存中做什么?

以下代码在 xv6(risc-v) 中执行。我有点困惑。为什么我们需要在 malloc() 之后调用 madvise() ? 是为了页表项的换入/换出吗? 附言。 vmprint() 打印页表。 #包括“

回答 1 投票 0

找出文件是否包含给定的文件签名

我想遍历给定的目录并查找给定的文件签名是否存在于该目录的任何常规文件中。 这是我的代码: char*给定的签名=“981d0000ec33fffffb0600000046...

回答 1 投票 0

在 VS Code 中使用 pow 函数时显示运行代码错误

当我要使用 VS Code 的 pow 函数终端运行一个简单的代码时显示错误。本质上,我必须编写一个程序,除其他外,从...计算正方形的面积

回答 1 投票 0

打印 __m128i 变量

我正在尝试学习使用内在函数进行编码,下面是一个执行加法的代码 使用的编译器:icc #包括 #包括 int main() { __m128i a =

回答 4 投票 0

free():无效指针中止(代码转储)(ubuntu C)

我有一个用 C 编写的大项目,其中大约有 2 行未发送的代码。 我在这个项目中有一个链接列表,我用它来存储程序的数据,在程序的最后我是calli......

回答 1 投票 0

使用OpenSSL递归计算目录中所有文件的SHA256总和

我正在尝试使用 OpenSSL 递归计算目录中所有文件的 SHA256 总和。 这是我的代码: #包括 #包括 #包括 #包括 我正在尝试使用 OpenSSL 递归计算目录中所有文件的 SHA256 总和。 这是我的代码: #include <stdlib.h> #include <stdio.h> #include <dirent.h> #include <string.h> #include <openssl/sha.h> #include <openssl/md5.h> #define _MAX_LINE_ 256 int sha256_file (char* path, char output[65]){ FILE* file = fopen(path, "rb"); unsigned char hash[SHA256_DIGEST_LENGTH]; const int bufSize = 32768; char* buffer = malloc(bufSize); int bytesRead = 0; SHA256_CTX sha256; if(!file) return -1; if(!buffer) return -1; SHA256_Init(&sha256); while((bytesRead = fread(buffer, 1, bufSize, file))){ SHA256_Update(&sha256, buffer, bytesRead); } SHA256_Final(hash, &sha256); sha256_hash_string(hash, output); fclose(file); free(buffer); return 0; } void sha256_hash_string (unsigned char hash[SHA256_DIGEST_LENGTH], char outputBuffer[65]){ int i = 0; for(i = 0; i < SHA256_DIGEST_LENGTH; i++){ sprintf(outputBuffer + (i * 2), "%02x", (unsigned char)hash[i]); } outputBuffer[64] = 0; } void traverse_dirs(char* base_path){ char path[_MAX_LINE_]; struct dirent* dp; DIR* dir = opendir(base_path); unsigned char file_sha[65]; char* md5_command; if(!dir) return; while((dp = readdir(dir)) != NULL){ if(strcmp(dp->d_name, ".") != 0 && strcmp(dp->d_name, "..") != 0){ // calculate the sha256 sum of the file sha256_file(dp->d_name, file_sha); // print the name of the file followed by the sha256 sum printf("%s -> %s\n", dp->d_name, file_sha); strcpy(path, base_path); strcat(path, "/"); strcat(path, dp->d_name); traverse_dirs(path); } } closedir(dir); } int main(int argc, char* argv[]){ if(argc < 2){ printf("Usage: <executable> <dirname>\n"); exit(-1); } traverse_dirs(argv[1]); return 0; } 正如我手动测试的那样,sha256_file()函数为每个文件生成正确的 sha256sum。 traverse_dirs()功能也可以正常工作,因为它可以正确打印所提供目录的内容。 问题是他们不能一起工作。我发现文件在 sha256_file() 函数中无法正确打开(fopen 返回 NULL),但我不明白为什么。如果我在每个文件上手动使用它,它就可以正常工作。 有什么想法吗? 此 sha256_file(dp->d_name, file_sha) 不起作用,因为您不在包含该名称的目录中。您需要使用您在 path[] 中构建的路径。 如果 sha256_file(path) 是常规文件,则应仅调用 path;如果 traverse_dirs(path) 是目录,则应仅调用 path。您可以使用 d_type 检查那些。请参阅 dirent 的手册页。

回答 1 投票 0

C中ceil函数的实现

我有两个关于 ceil() 函数的问题。 ceil() 函数是用 C 实现的。如果我使用 ceil(3/2),它工作得很好。但是当我使用 ceil(count/2) 时,如果 count 的值为 3,那么它给出 com...

回答 5 投票 0

何时或什么使 gcc 添加依赖项?

我正在调查 sudo 的问题,在某些时候我注意到 gcc 添加了 libintl 作为 sudo 依赖项: $ ldd src/sudo /lib/ld-musl-x86_64.so.1 (0x77e7c812f000) libintl.so.8 =>...

回答 1 投票 0

如何在C中获取以UTF-8编码的文本文件中的字符位置?

C 标准规定,当以二进制模式打开文件时,ftell() 返回从文件开头算起的字符位置。 ...获取文件位置指示符的当前值...

回答 1 投票 0

C Cmake 项目中包含文件的组织

我正在尝试清理一个c项目(使用cmake),但我从根本上不理解如何组织我的c代码包含。 我有一个代码模块,其结构如下。这是一个非常...

回答 1 投票 0

内存管理问题 - “中止”、“总线”或“分段错误”错误且没有任何解释

我正在尝试用 C 重写我的 python 代码,因为我的分析需要分析具有 1,000,000 x 6 数据点的 2,000 个文件。这样的文件要求使得 Python 中的分析非常慢,所以我...

c
回答 1 投票 0

该算法有效,但在 20 M 记录之间,它在 6.5 M 处停止,然后给我分段错误。这个归并排序算法正确吗?

我需要实现一个为通用数据提供归并排序和快速排序算法的库,实现以下函数原型: void merge_sort(void *base, size_t nitems, 大小...

回答 1 投票 0

“无法访问地址 0x208c 处的内存”错误

反汇编代码: 0x0804844d<+0>:推送%ebp 0x0804844e <+1>: mov %esp,%ebp 0x08048450 <+3>: 和 $0xffffffff0,%esp 0x08048453<+6>:子...

c gdb
回答 6 投票 0

对数字求平方但保留符号(在 c 中)

有没有一种简单的方法可以在对值进行平方后保留符号。 我目前有: 浮动有符号的方(浮动x){ 如果(x > 0){ 返回 x * x; } 别的 { 返回 -(x * x);...

回答 3 投票 0

为什么 write 系统调用打印的字符数不正确?

我正在尝试使用不同的 C 函数来实现 echo 命令。通过 printf 实现它相当简单: #包括 #包括 #包括 INT...

回答 2 投票 0

printf 中双精度的正确格式说明符

printf 中 double 的正确格式说明符是什么?是%f还是%lf?我相信是%f,但我不确定。 代码示例 #包括 int main() { 双 d = 1.4; 原则...

回答 5 投票 0

将“unsigned Short[8]”传递给“CHAR16 *”类型的参数(又名“short *”)会在指针之间转换为具有不同符号的整数类型

我有以下代码: //#include“stdint.h” #include“uefi.h” //#include“efi_libs.h” void PrintLn(CHAR16* 字符串, EFI_SYSTEM_TABLE* _SystemTable); 无效打印(C...

回答 1 投票 0

函数返回 null 而不是 C 中的数组

所以我正在用 C 解决 Leetcode 上的“最长公共前缀”问题,并且几乎可以正常工作了。我的代码: char * 最长的CommonPrefix(char ** strs, int strsSize){ int minlen = ...

c
回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.