c相关内容

我的C程序不会打印任何东西,即使我尝试了所有我在互联网上读到的东西

我的Hello World程序不提供任何输出。我已经挣扎了一周,试图做互联网上提到的不同的事情,比如: 在末尾添加 (作为printf("Hello World ");) fflush(stdio); getch(); 我尝试重新安装C编译器 我从明码64转到明码32 我甚至尝试过用g++编译 我也使用命令提示符在VS代码上尝试过 但无论如何,我还是不会得到输出。代码如下: ..
发布时间:2022-08-02 18:37:16 其他开发

UDP非阻塞写入故障

我研究过非阻塞的TCP,因为在非阻塞的情况下,读写都可能失败。如果没有可用的数据,则TCP非阻塞读取可能失败,如果对等端的TCP缓冲区已满(我希望TCP缓冲区大小为64K),则TCP写入可能失败。 同样,如果没有可用的数据,UDP读取(recvfrom)可能会失败。但是,UDP写入(sendto)的失败情况是什么?我认为在UDP写入中不会有任何非块错误。因为TCP WRITE发送数据并等待来自另 ..
发布时间:2022-08-02 11:21:27 其他开发

如何启用UDP校验和

我正在做一个项目,涉及VxWorks设备和Linux机器之间的UDP套接字通信。在此项目中,我希望利用UDP报头的校验和字段。 在VxWorks套接字接口中,出站UDP数据包的checksum字段默认处于启用状态。 但是,对于通常的Unix套接字接口,似乎没有任何标志或其他方法来打开UDP套接字,该套接字将检查传入数据包的校验和并填充传出数据包的校验和。 对于通常的Unix套接字接口 ..
发布时间:2022-07-25 22:36:07 其他开发

GDB在进程核心中的评估功能

有没有办法在gdb的进程核心上下文中执行函数? 其动机是运行一个函数,该函数将遍历大树以查找特定节点。我可以手动遍历树,但我想构建一个函数来帮助我分析核心。 因此使用函数或“gdb脚本”来遍历数据树。 推荐答案 有没有办法在gdb的进程核心上下文中执行函数? 否:为此,您需要一个“活动的”次进程。 我可以手动遍历树,但我想构建一个函数来帮助我分析核心。 您 ..
发布时间:2022-07-25 17:44:02 其他开发

True等于1,False等于0吗?

我在想,true等于1,false等于0,是怎么回事? 推荐答案 false == 0和true = !false 即,任何非零且可以转换为布尔值的对象都不是false,因此必须是true。 举例说明: if(0) // false if(1) // true if(2) // true if(0 == false ..
发布时间:2022-07-25 15:30:28 C/C++开发

每个程序分配一个固定的堆栈大小?谁为每个运行的应用程序定义堆栈内存量?

当我们运行代码时,编译后的编译器会检测所需的堆栈内存量吗?因此,每个程序都有自己的堆栈内存。 还是每个程序的堆栈内存由操作系统定义? 谁为每个运行的应用程序定义堆栈内存量? 或者我们没有此功能,并且每个程序都可以根据需要使用所有堆栈内存? 推荐答案 在x86-64Linux上,堆栈默认分配8MB。点击此处浏览Ciro Santilli对x86 Linux内存布局的回答 ..
发布时间:2022-07-24 19:04:11 其他开发

使用WinInet发送不一致的WebHook

我正在尝试将Web挂钩发送到以下URL: https://discord.com/api/webhooks/781132765195747359/XDXDH08HsJ0GzkYFKvlDFO6QE3MtzKOqIaKpBruLmqLDJPvlLQEuQQNjr_R8x4y9zCjx 我的代码: HINTERNET hIntSession = InternetOpenA((""), ..
发布时间:2022-07-23 22:47:47 其他开发

如何使用C应用程序访问FreeDOS中的全部内存空间

我有一个用C编写的嵌入式应用程序,运行在486/386DX风格的处理器(http://www.dmp.com.tw/tech/vortex86dx)上的FreeDOS上。这台电脑有256MB的内存,但我似乎无法使用大部分内存。 我已经编写了一个简单的程序来调查(在一个循环中调用malloc(),直到返回空指针),虽然每个malloc()请求的大小对结果影响很小,但它总是在300kb左右。我的 ..
发布时间:2022-07-22 15:02:16 其他开发

使用FreeDOS是否允许我的程序访问超过64K的内存?

我对在FreeDOS上用C编程感兴趣,同时在这个过程中学习了一些基本的ASM,使用FreeDOS会允许我的程序访问超过标准640K的内存吗? 其次,关于ASM,我知道在现代处理器上,由于CPU体系结构的复杂性,很难在汇编语言上编程,但使用FreeDOS是否会限制我使用可能更简单的16位指令集? 推荐答案 在没有任何扩展器的情况下,程序在DOS下最多可以使用640KB的低内存。但每 ..
发布时间:2022-07-22 14:50:06 其他开发

在MS-DOS中检查是否按下了某个键(C/C++)

是的,我指的是真正的MS-DOS,而不是Windows的cmd.exe外壳控制台。 有没有办法检查MS-DOS中的某个键是否按下,类似于WinAPI中的GetAsyncKeyState()函数? 我目前使用的是kbhit()和getch(),但速度很慢,第一个字符后有延迟,不允许同时按多个键等。 我使用的是Turbo C++3.1。有人能帮忙吗? (顺便说一句,不要问我为什 ..
发布时间:2022-07-22 14:40:38 C/C++开发

C解析/proc/stat以计算每个内核的当前CPU使用率

我为我的无能提前道歉。我正在上的一门课需要这个,但C中的一切都超出了我的理解,我一直在努力坚持下去。 我正在尝试解析/proc/stat中的信息,这样我就可以计算每个内核的当前CPU使用率,并将其打印出来。我将通过从较新版本的/proc/stat中减去旧版本的数字并将得到的数字添加到最新的集合中来计算当前&q;的使用量(至少我是这样认为的,当我到达那个集合时,我会跨越这座桥)。无论如何,我对 ..
发布时间:2022-07-22 09:08:41 其他开发

如何将结构显式加载到L1d缓存中?在带/不带超线程的隔离内核上使用CR0.CD=1的INVD出现奇怪的结果

我的目标是将静态结构加载到L1D缓存中。之后,使用这些结构成员执行一些操作,并在操作完成后运行invd以丢弃所有修改后的高速缓存线。因此,基本上我希望在缓存中创建一个安全的环境,以便在缓存中执行操作时,数据不会泄漏到RAM中。 为此,我有一个内核模块。在那里我给结构的成员设置了一些固定值。然后禁用抢占,禁用所有其他CPU的缓存(当前CPU除外),禁用中断,然后使用__builtin_pref ..
发布时间:2022-07-21 13:03:27 其他开发

C等待时间或用SIGWAIT发信号

我要等待X秒或信号到达时。 我可以使用sigwait,但它只监听信号,没有超时。 正确的方法是什么? 推荐答案 可以使用sigtimedwait()函数,该函数在作为参数给定的超时后返回。 以下是文档:http://www2.phys.canterbury.ac.nz/dept/docs/manuals/unix/DEC_4.0e_Docs/HTML/MAN/MAN3/1 ..
发布时间:2022-07-20 16:57:06 其他开发

GTK+3&Glade问题

我试图在Linux上用C和Glade制作一个简单的gui程序。 我写了一个简单的程序,并用Glade设计了一个窗口。 当我运行代码时,它显示: (gtk-test:23026): Gtk-CRITICAL **: gtk_widget_show: assertion ‘GTK_IS_WIDGET(widget)’ failed 并且没有任何窗口打开。 我在网上搜索了一下,但找不到任何有用 ..
发布时间:2022-07-20 13:34:24 服务器开发

在C中隐式声明函数和警告的含义是什么?

正如问题所述,具有“隐式函数声明”警告的确切含义是什么?我们刚刚调高了GCC身上的警告标志,发现了相当多的这些警告的例子,我很好奇在修复它们之前,这可能会导致什么类型的问题? 另外,为什么这是一个警告而不是一个错误。GCC怎么能成功链接到这个可执行文件呢?正如您在下面的示例中看到的,可执行文件的功能与预期一致。 以以下两个文件为例: 文件1.c #include ..
发布时间:2022-07-19 15:21:42 其他开发

在C++中重新声明for循环内的变量

我在GCC编译器上使用gcc prog.c -Wall -Wextra -std=gnu11 -pedantic命令编译了以下程序。我想知道,它工作得很好,没有任何警告或错误。 #include int main(void) { for (int i = 0; i == 0; i++) { printf("%d ", ..
发布时间:2022-07-19 15:10:25 其他开发