minilibc | minilibc Minilibc MinilibC MiniLibC MINILIBC

 by   Paul-Marie C Version: Current License: No License

kandi X-RAY | minilibc Summary

kandi X-RAY | minilibc Summary

minilibc is a C library. minilibc has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.

minilibc Minilibc MinilibC MiniLibC MINILIBC
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              minilibc has a low active ecosystem.
              It has 11 star(s) with 0 fork(s). There are 1 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              minilibc has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of minilibc is current.

            kandi-Quality Quality

              minilibc has no bugs reported.

            kandi-Security Security

              minilibc has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              minilibc does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              minilibc releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of minilibc
            Get all kandi verified functions for this library.

            minilibc Key Features

            No Key Features are available at this moment for minilibc.

            minilibc Examples and Code Snippets

            No Code Snippets are available at this moment for minilibc.

            Community Discussions

            QUESTION

            What is "namespace cleanliness", and how does glibc achieve it?
            Asked 2019-Sep-10 at 21:56

            I came across this paragraph from this answer by @zwol recently:

            The __libc_ prefix on read is because there are actually three different names for read in the C library: read, __read, and __libc_read. This is a hack to achieve "namespace cleanliness", which you only need to worry about if you ever set out to implement a full-fledged and fully standards compliant C library. The short version is that there are many functions in the C library that need to call read, but some of them cannot use the name read to call it, because a C program is technically allowed to define a function named read itself.

            As some of you may know, I am setting out to implement my own full-fledged and fully standards-compliant C library, so I'd like more details on this.

            What is "namespace cleanliness", and how does glibc achieve it?

            ...

            ANSWER

            Answered 2019-Sep-10 at 21:56

            Kaz and R.. have explained why a C library will, in general, need to have two names for functions such as read, that are called by both applications and other functions within the C library. One of those names will be the official, documented name (e.g. read) and one of them will have a prefix that makes it a name reserved for the implementation (e.g. __read).

            The GNU C Library has three names for some of its functions: the official name (read) plus two different reserved names (e.g. both __read and __libc_read). This is not because of any requirements made by the C standard; it's a hack to squeeze a little extra performance out of some heavily-used internal code paths.

            The compiled code of GNU libc, on disk, is split into several shared objects: libc.so.6, ld.so.1, libpthread.so.0, libm.so.6, libdl.so.2, etc. (exact names may vary depending on the underlying CPU and OS). The functions in each shared object often need to call other functions defined within the same shared object; less often, they need to call functions defined within a different shared object.

            Function calls within a single shared object are more efficient if the callee's name is hidden—only usable by callers within that same shared object. This is because globally visible names can be interposed. Suppose that both the main executable and a shared object define the name __read. Which one will be used? The ELF specification says that the definition in the main executable wins, and all calls to that name from anywhere must resolve to that definition. (The ELF specification is language-agnostic and does not make any use of the C standard's distinction between reserved and non-reserved identifiers.)

            Interposition is implemented by sending all calls to globally visible symbols through the procedure linkage table, which involves an extra layer of indirection and a runtime-variable final destination. Calls to hidden symbols, on the other hand, can be made directly.

            read is defined in libc.so.6. It is called by other functions within libc.so.6; it's also called by functions within other shared objects that are also part of GNU libc; and finally it's called by applications. So, it is given three names:

            • __libc_read, a hidden name used by callers from within libc.so.6. (nm --dynamic /lib/libc.so.6 | grep read will not show this name.)
            • __read, a visible reserved name, used by callers from within libpthread.so.0 and other components of glibc.
            • read, a visible normal name, used by callers from applications.

            Sometimes the hidden name has a __libc prefix and the visible implementation name has just two underscores; sometimes it's the other way around. This doesn't mean anything. It's because GNU libc has been under continuous development since the 1990s and its developers have changed their minds about internal conventions several times, but haven't always bothered to fix up all the old-style code to match the new convention (sometimes compatibility requirements mean we can't fix up the old code, even).

            Source https://stackoverflow.com/questions/57733129

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install minilibc

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/Paul-Marie/minilibc.git

          • CLI

            gh repo clone Paul-Marie/minilibc

          • sshUrl

            git@github.com:Paul-Marie/minilibc.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link