问题标签 [tr24731]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - strcpy_s 不适用于 gcc
我有一个 C++11 项目,并添加了一些strcpy_s
方法调用。这适用于 Windows,但是在 gcc 上编译时,会出现一个错误,指出strcpy_s
找不到符号。
我确实添加了这条线
#define __STDC_WANT_LIB_EXT1__ 1
到代码,无济于事。
c - scanf的宽度规格和scanf_s的区别
此代码将保护我们的程序免受缓冲区溢出攻击。
但是没有scanf_s,我们可以这样写:
我认为这段代码也会阻止缓冲区溢出。这是真的?
那么两种方式的基本区别是什么?
如果 scanf 的宽度规范是阻止缓冲区溢出,为什么我们称原始 scanf 为“不安全”?
c - 如何在包含可选字符串函数的 Mac OS 上安装 C11 编译器?
我正在尝试下面的代码来查看是否支持 C 中的可选字符串函数(我已经安装了 Mac OS X El Capitan 和 XCode)......
...但它表明他们不是。
我已经尝试了 XCode 中的所有不同编译器(cc、gcc、llvm-gcc、clang)。
我也尝试过brew install gcc
假设 GNU C 编译器会给我这些额外的功能,但事实并非如此。
有没有办法在 Mac OS 上简单地安装一个兼容 C11 的编译器,它会给我这些额外的(即安全的)字符串函数。
c - 使用 scanf_s 读取字符
我只是在搞乱 C 并遇到了这个小问题。正如您从我的输出中看到的那样,我得到了“╠”这个字符。
查看程序输出
c++ - C++ strcpy_s IntelliSense 错误
我在这个地方有错误:
错误是:
这是 game.board_now 函数:
这是我尝试使用的其余代码strncpy_s()
:
该代码基本上是用于国际象棋程序的,我在进行更改后尝试接收棋盘,但我不知道如何格式化他strcpy_s()
以便将他放入数组并将其发送回给定的 exe。
c - Get_s 功能不工作
我的书说该get_s()
功能是该功能的更好替代品,该gets()
功能已弃用且不应使用。但是,当我尝试使用该get_s()
功能时,它总是给我一个错误:
此页面说明了有关 gets_s 的一些信息,我并不真正了解它在ISO/IEC 99
. 它不应该适用于所有编译器吗?我很确定我使用的是最新版本的 MinGW 编译器。
我应该如何使用这个功能?使用gets()
or scanf()
(而不是scanf_s()
)或fgets()
overfgets_s()
不好?
c - 如何在 gcc 中使用 strncpy_s?
我正在尝试在我的 C++ 程序中使用 strncpy_s 功能,但是由于宏定义,我的代码无法访问 strncpy_s,请让我知道如何在 gcc 中使用 strncpy_s,在此先感谢,我的代码如下
而且我的代码没有进入 ifdef ,还有其他使用 strncpy_s 的方法吗?
c - scanf_s 每次都返回 Null
我将 scanf_s 用于两个不同的输入并将它们放入 char 数组中。我附上了代码和它给出的输出
输出是:
对这个问题的任何帮助都会很好,因为我所做的任何 scanf_s 都不起作用,它让我发疯。
c - 架构 x86_64 的未定义符号:“_gets_s”
我正在尝试从《Beginning C 5th Ed》一书中编译一个示例程序。通过艾弗霍顿。尝试在 OSX 上编译它,我从 gcc 得到以下输出:
程序代码如下:
我以为我已经定义了可选功能,但我想我没有?这只是一本过时的书还是一个不好的例子,还是我在尝试编译它时做错了什么?
c++ - MSVC 2017 下缺少 C11 strerrorlen_s 函数
我正在尝试从MSVC 2017下的C11 标准中查找要包含的strerrorlen_s
函数的标头。我需要它来为要使用的错误消息分配空间。代码如下:strerror_s
在文档中有以下文字:
与所有边界检查函数一样,strerror_s 和 strerrorlen_s 只有在由实现定义并且用户在 include之前
__STDC_LIB_EXT1__
定义__STDC_WANT_LIB_EXT1__
为整数常量时才保证可用。1
string.h
MSVC 2017没有定义__STDC_LIB_EXT1__
,似乎__STDC_WANT_LIB_EXT1__
在包含之前定义string.h
没有效果。虽然strerror_s
可用。
strerrorlen_s
可以在带有MSVC 2017的Windows下使用吗?- 如果该功能不可用,是否有可能通过其他方式获取错误消息长度?
- Windows
strerror_s
下的线程安全吗,因为在Linux下似乎不是,如果需要线程安全,必须使用strerror_r ,但它在Windows上不可用?