标签: ansi

什么是STL容器的纯C替代品?

可能重复:
C的容器类/库

使用C++而不是C的主要原因之一是STL提供的非常方便的容器.但是,如果我想用纯C编写代码而不必从头开始编写所有容器,我还有什么选择?

我听说过的一些(但从未使用过的)是

  • 油嘴
  • iMatix标准函数库
  • 来自Linux内核头文件的不同元素(例如列表)

任何有关纯C(Ansi或其他)容器的意见和/或经验都将非常感激.

c c++ gcc stl ansi

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

解密DUKPT加密跟踪数据

正如标题所说,我正在尝试解密来自启用DUKPT的扫描仪的DUKPT加密跟踪数据.

我有DUKPT的ANSI标准(X9.24),并成功实现了从KSN和BDK生成IPEK的能力.此外,我已成功实现了通过对PIN加密密钥进行异或来生成左和右MAC请求和响应密钥的功能.最后,我能够生成EPB.

从这里,我不明白如何从我生成的L/R键生成MAC请求和响应.

最后,一旦我走到那一步,接下来会发生什么?我什么时候才能获得解密由启用DUKPT的设备发送的曲目数据的密钥?

我知道Thales模拟器和jPOS.我的代码目前正在引用Thales Simulator来完成它的所有工作.但是,文件解密过程只是没有返回预期的数据.

如果有人能够提供解密跟踪数据的一些见解,那将非常感激.

http://thalessim.codeplex.com/

http://jpos.org/

encryption ansi jpos credit-card-track-data

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

如何在WinXP cmd shell中加载ANSI转义码或获取彩色文件列表?

这与问题有关:如何在windows cmd shell中获取彩色文件列表?

我试图得到,你不相信它,在Windows cmd shell中的彩色文件列表.Windows是XP SP2,如果重要的话.
在旧的DOS时代,曾经有像hdir,adir这样的小程序,这些都表现得很好.如今,此类计划已不复存在.

然而有,LS,从unixkit-tiny或unixtools.不幸的是,它使用ANSI转义码来显示颜色,而cmd也不能很好地处理它们.

有几种解决方案,包括加载ansi.sys和command.com,但是command.com不能很好地处理长文件名,而且速度非常慢.即使这样,有时也会出现显示颜色的问题

所以我要问的是,有没有办法在windows cmd shell中获得彩色文件列表,除了使用cygwin?或者有没有办法让ANSI转义码以某种方式使用cmd.exe,以便本机ls可以很好地播放?

unix cmd ansi

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

如何在ANSI C中打印重音字符(如áéíóú)

我试着printf用一些重音字符,例如á é í ó ú:

printf("my name is Seán\n");

DEVC++ IDE中的文本编辑器显示它们很好 - 即源代码看起来很好.我想我需要一些其他库stdio.h,也许还有一些正常的变体printf.

我正在使用在Windows XP上运行的IDE Bloodshed DEVC.

c printf ansi non-ascii-characters

10
推荐指数
2
解决办法
9252
查看次数

从ANSI C代码获取控制流图

我正在构建用于测试ansi c应用程序的工具.只需加载代码,查看控制流图,运行测试,标记所有被击中的顶点.我正在尝试通过解析代码来自己构建CFG.不幸的是,如果嵌套代码,它会搞砸.GCC提供从编译代码中获取CFG的能力.我可能会为其输出编写解析器,但我需要行号来设置断点.使用-fdump-tree-cfg或输出控制流图时是否有获取行号的方法-fdump-tree-vcg

c gcc graph ansi

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

初始化位域

当你写作

struct {
    unsigned a:3, b:2;
} x = {10, 11};
Run Code Online (Sandbox Code Playgroud)

x.b保证是3由ANSI C(C89)?我已阅读并重新阅读标准,但似乎无法找到确切的情况.

例如,"无法用结果无符号整数类型表示的结果以模数的形式减少,该数字大于可由结果无符号整数类型表示的最大值." 谈论计算,而不是初始化.而且,位字段实际上不是一种类型.

此外,(当谈到无符号t:4时)"包含[0,15]范围内的值",但这并不一定意味着初始化器必须以模16减少以映射到[0,15].

结构初始化真的是详细描述,但我似乎无法找到确切的行为.(当然编译器就是这样做的.而且IBM文档说"当你将一个超出范围的值分配给一个位字段时,保留低位模式并分配适当的位.",但是我想要要知道ANSI C是否标准化了.

c struct initialization ansi bit-fields

10
推荐指数
2
解决办法
7806
查看次数

C11标准文档

从这个受SO保护的问题开始,我试图了解这些文件之间的区别:

  1. 9899 2012年费用$60
  2. 9899 2011年费用$265

正如你所看到的那些文件的价格差别很大,我不知道更便宜的文件是否有效,或者类似于真实标准的草稿或剪切副本.

有人买过INCITS吗?


编辑

正如@Chqrlie指出的那样:免费提供的ANSI和ISO官方文件与最终草案之间的区别是什么,可从官方网站 open-std.org/jtc1/sc22/wg14/www/docs/n1570 免费获取. PDF格式

c standards ansi c11

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

ANSI Smalltalk和Smalltalk-80有什么区别?

我发现thisContext在ANSI Smalltalk规范(草案)中没有提到.

我假设ANSI Smalltalk是标准化的Smalltalk-80,所以我无法理解它为什么不存在.它们的区别是什么?

standards smalltalk ansi

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

符合ANSI C的实现是否可以在其标准库中包含其他功能?

是否符合ANSI C标准的实现允许在其标准库中包含其他类型和函数,超出标准列举的那些类型和函数?(理想的答案将参考ANSI标准的相关部分.)

我特别要求,因为Mac OS 10.7 getline在stdio.h中声明了该函数,即使使用该-ansi标志使用gcc或clang进行编译也是如此.这打破了几个定义自己getline功能的旧程序.这是Mac OS 10.7的错吗?(getlineMac OS 10.7上的手册页说明getline符合2008年发布的POSIX.1标准.)

编辑:为了澄清,我发现奇怪的是,在Mac OS 10.7上的ANSI C89程序中包含stdio.h也会引入该getline函数的声明,因为getline它不是K&R(可能是ANSI)中所列举的函数之一. stdio.h中.特别是,尝试编译noweb:

gcc -ansi -pedantic    -c -o notangle.o notangle.c
In file included from notangle.nw:28:
getline.h:4: error: conflicting types for ‘getline’
/usr/include/stdio.h:449: error: previous declaration of ‘getline’ was here
Run Code Online (Sandbox Code Playgroud)

它是否是Mac OS 10.7中的一个错误,getline即使在编译ANSI C89标准时也包括stdio.h中的声明?

c standards ansi getline osx-lion

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

结构指针兼容性

假设我们有两个结构:

typedef struct Struct1
{
    short a_short;
    int id;
} Struct1;

typedef struct Struct2
{
    short a_short;
    int id;
    short another_short;
} Struct2;
Run Code Online (Sandbox Code Playgroud)

从哪里投Struct2 *来安全Struct1 *?ANSI规范对此有何规定?我知道有些编译器可以选择重新排序结构字段以优化内存使用,这可能会使两个结构不兼容.有没有办法确定这段代码是否有效,无论编译器标志如何?

谢谢!

c struct casting ansi

9
推荐指数
2
解决办法
1061
查看次数