小编Har*_*rry的帖子

有没有办法将 C 变量从一个部分移动到另一个部分到链接描述文件中?

我有一个常量数组,链接器将其放入 .rodata 部分。我需要它进入 .text 部分。是否可以?我已经尝试将它定义为静态常量,但它没有改变任何东西。我正在使用 Green Hills 链接器和编译器。

谢谢!

c greenhills

6
推荐指数
0
解决办法
161
查看次数

为什么我无法修复 cygwin1.dll 不匹配问题?

我正在尝试执行 .sh 脚本(不是我编写的),但出现以下错误:

0 [main] echo (5320) C:\Program Files\Git\usr\bin\echo.exe: *** 致命错误 - 检测到 cygheap 基址不匹配 - 0x180343408/0x180317408。此问题可能是由于使用了不兼容版本的 cygwin DLL 造成的。使用 Windows“开始”->“查找/搜索”工具搜索 cygwin1.dll,并删除除最新版本之外的所有版本。最新版本 位于 x:\cygwin\bin 中,其中“x”是安装 cygwin 发行版的驱动器。如果您无法找到另一个 cygwin DLL,也建议重新启动。

我尝试按照错误中的说明进行操作,但我只有一个 cygwin1.dll 文件。

所以我尝试在 git bash shell 中执行以下命令:

/c/cygwin/bin/人

我得到:

0 [main] man (11952) C:\cygwin\bin\man.exe: *** 致命错误 - 检测到 cygheap 基址不匹配 - 0x180317408/0x180343408。此问题可能是由于使用了不兼容版本的 cygwin DLL 造成的。使用 Windows“开始”->“查找/搜索”工具搜索 cygwin1.dll,并删除除最新版本之外的所有版本。最新版本 位于 x:\cygwin\bin 中,其中“x”是安装 cygwin 发行版的驱动器。还建议重启

我已经尝试在漏洞保护面板中禁用 ASRL 选项(按照某人的建议)并重新启动,但这并没有解决问题。

如果我写

其中-a cygwin1.dll

我得到:

/c/cygwin/bin/cygwin1.dll

/c/cygwin/bin/cygwin1.dll

看起来我有两个 cygwin1.dll 但实际上我只有一个..几天以来我一直在寻找可能的解决方案,但似乎没有任何对我有用。有什么建议吗?

cygwin

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

在bash中计算字符串的长度

我有以下十六进制字符串

VAR='\x45\x8A\xC8\x4E\x58\xBB\x16\x17\x55\x96\xA5\x26\xD1\xDA\x56\x04\xA7\xBD\x6F\xA5'
Run Code Online (Sandbox Code Playgroud)

我需要找到它的字节数,它是 20。但是如果我输入

length=${#VAR}
echo "var length: "$length
Run Code Online (Sandbox Code Playgroud)

我得到80。我该怎么办?非常感谢您提前!

bash

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

如何在C中读取.csv文件

我知道关于这个主题还有其他问题,但我仍然无法找到问题的解决方案.

我正在尝试使用该fscanf()函数在C中读取.csv文件.

如果我用文本编辑器打开csv文件,它看起来像这样:

578,2.2212e+05,223,0,243,0,0,0.09,0,0,0,3
633,2.2222e+05,223,0,243,0,0,-0.04,0,0,0,3
688,2.2232e+05,223,0,243,0,0,0.07,0,0,0,3
740,2.2242e+05,223,0,243,0,0,0.04,0,0,0,3
793,2.2252e+05,224,0,244,0,0.01,0.16,0,0,0,3
848,2.2262e+05,223,0,717,0.060985,0.02,0.08,0,0,0,4
902,2.2272e+05,223,0,721,0.084618,0.03,0.24,0,0,0,5
955,2.2282e+05,223,0,730,0.12825,0.05,0.34,0,0,0,4
Run Code Online (Sandbox Code Playgroud)

我刚刚报告了前几行,但它包含了更多内容.

然后我用这段代码来读取文件:

FILE* stream = fopen("./filelog.csv", "r");
if(stream == NULL) {      
       printf("\n file opening failed ");      
       return -1 ;   
} 
int values[8];
int count;
for(count = 0; count < 8; count++) {

    int u = fscanf(stream, "%i", &values[count]);
    printf("%i\n", values[count]);
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出如下:

578
32697
0 
0
1
0
4199901
0
Run Code Online (Sandbox Code Playgroud)

我们可以看到只有第一个值被正确读取.我怎么能读取整个文件并将其存储到矩阵中?我找不到任何解决方案.非常感谢您提前回复!

c csv file

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

标签 统计

c ×2

bash ×1

csv ×1

cygwin ×1

file ×1

greenhills ×1