问题标签 [libc]

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.

0 投票
2 回答
2594 浏览

c - 在哪里可以找到我的系统对标准 C 库函数的实现?

例如,strrev() 函数。我知道它是在 string.h 中声明的,我想弄清楚它是如何实现的。那么我在哪里可以找到源代码?

操作系统:Windows XP SP3
IDE:Pelles C 6.50 RC3

0 投票
0 回答
39385 浏览

gcc - gcc:为什么链接数学库需要 -lm 标志?

我刚刚发现-lmgcc 需要该标志才能编译引用数学库中的函数的程序。我想知道为什么在编译包含其他库(如时间库)的程序时不需要显式链接标志。如果我编写一个time()调用该函数的程序,即使没有链接选项,它也可以毫无问题地编译。但是一个涉及数学库的程序没有-lm标志就无法工作。

谁能解释一下这种行为背后的原因?谢谢你的时间。

0 投票
4 回答
3543 浏览

c - Unix 上的 IsBadReadPtr 类似物

是否有类似于Unix中的IsBadReadPtr的函数?至少 IsBadReadPtr 的一些功能?我想编写一个程序,如果进程(如SIGSEGV)发生不好的事情会做出反应并恢复一些信息。但我想检查指针以确保数据没有损坏,并查看它们是否可以安全访问。否则崩溃处理程序本身就会崩溃,从而变得无用。

有什么建议么?

0 投票
2 回答
3001 浏览

embedded - Porting newlib to a custom ARM setup

this is my first post, and it covers something which I've been trying to get working on and off for about a year now.

Essentially it boils down to the following: I have a copy of newlib which I'm trying to get working on an LPC2388 (an ARM7TDMI from NXP). This is on a linux box using arm-elf-gcc

The question I have is that I've been looking at a lot of the tutorials talking about porting newlib, and they all talk about the stubs (like exit, open, read/write, sbrk), and I have a pretty good idea of how to implement all of these functions. But where should I put them?

I have the newlib distribution from sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz and after poking around I found "syscalls.c" (in newlib-1.18.0/newlib/libc/sys/arm) which contains all of the stubs which I have to update, but they're all filled in with rather finished looking code (which does NOT seem to work without the crt0.S, which itself does not work with my chip).

Should I just be wiping out those functions myself, and re-writing them? Or should I write them somewhere else. Should I make a whole new folder in newlib/libc/sys with the name of my "architecture" and change the target to match?

I'm also curious if there's proper etiquette on distribution of something like this after releasing it as an open source project. I currently have a script which downloads binutils, arm-elf-gcc, newlib, and gdb, and compiles them. If I am modifying files which are in the newlib directory, should I hand a patch which my script auto-applies? Or should I add the modified newlib to the repository?

Thanks for bothering to read! Following this is a more detailed breakdown of what I'm doing.


For those who want/need more info about my setup:

I'm building a ARM videogame console based loosely on the Uzebox project ( http://belogic.com/uzebox/ ).

I've been doing all sorts of things pulling from a lot of different resources as I try and figure it out. You can read about the start of my adventures here (sparkfun forums, no one responds as I figure it out on my own): forum.sparkfun.com/viewtopic.php?f=11&t=22072

I followed all of this by reading through the Stackoverflow questions about porting newlib and saw a few of the different tutorials (like wiki.osdev.org/Porting_Newlib ) but they also suffer from telling me to implements stubs without mentioning where, who, what, when, or how!

0 投票
1 回答
2812 浏览

linux - 如何使 lseek64 _actually_ 返回 64 位偏移量?

然后strace:

  • 20974464000 == 0x4E22CEC00 - 好
  • -500372480 == 0xffffffffe22cec00 - 坏

它更改为(off64_t)lseek64(fd, 0, SEEK_END);错误地调用 _llseek:

我还应该做些什么来确保它正确获得大小,而不切断主要的 dword?

0 投票
2 回答
439 浏览

glibc - 如何在 libc 中调用内核代码?(Windows 或 Linux)

我的意思是,内核如何将其功能暴露给用户级应用程序。

0 投票
4 回答
346 浏览

regex - 使用 regcomp 进行 ^[az]{0,20000}$ 正则表达式编译的糟糕表现

我想知道为什么这种正则表达式的编译占用了我 70% 的 RAM,导致频繁交换和 16 的平均负载:

执行时间以分钟为单位(必须先终止进程)。(2,000,而不是 20,000)的执行时间^[a-z]{0,2000}$约为 100 毫秒,这对我来说非常重要。

我用它来检查模式并同时检查长度。Ï 发现正则表达式对两者都很方便。难道我做错了什么 ?

0 投票
4 回答
1219 浏览

c++ - C++:如何强制 libc 声明进入 std::?

所以,我发现自己在我的 C++ 程序中需要 libc。但是,我不喜欢将它洒在全局命名空间中的想法。理想情况下,我想强制整个 libc 进入std::命名空间,所以我必须这样做,std::memcpy而不是memcpy.

这可能吗?如何?如果需要,我愿意使用特定于编译器的宏(我只针对 MS VC++ 10.0 和 GCC 4.6)。

编辑:我的字面意思是“强制声明进入std”——这样它们在没有std::前缀的情况下是不可调用的。另外,我包括cstdio,不是stdio.h

谢谢!

0 投票
8 回答
12199 浏览

c - 用于嵌入式系统的小型 libc

我正在寻找一个小型 libc,用于在 ARM7 微控制器上与 freertos 一起使用。我看过 newlib,但它对我的需要来说有点太复杂了。Newlib 在许多函数(例如 printf())中调用 malloc(),这对小型嵌入式实时系统不利。

有谁知道适合我的应用程序的小型可移植开源 libc 实现?

0 投票
1 回答
428 浏览

msvcrt - Microsoft vs. GNU C/C++ 标准库实现

从实施的角度来看,哪一个更好更干净,可以推荐作为学习指南?在我看来,一个人可以通过浏览那些 C 库(C++ 的东西变得丑陋恕我直言)实现并玩弄它们来真正学到很多东西,因为它们在设计和概念上相当简单。我期待那些浏览过这两种实现的人会给出公正的答案。

对于不知道的人,Microsoft 的 C/C++ 库的大部分实现都可用于调试目的。您可以在 Visual Studio 安装文件夹中找到它们VC\crt\src\。例如。对于 VS2008:(c:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src假设您在 中安装了副本c:\Program Files\)。