<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Binary-Structure on Sandeep Kumar</title><link>https://sandeep007734.github.io/tags/binary-structure/</link><description>Recent content in Binary-Structure on Sandeep Kumar</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 04 Dec 2025 00:00:00 +0530</lastBuildDate><atom:link href="https://sandeep007734.github.io/tags/binary-structure/feed.xml" rel="self" type="application/rss+xml"/><item><title>Library Calling in C</title><link>https://sandeep007734.github.io/posts/lib-calling/</link><pubDate>Wed, 01 May 2019 00:00:00 +0530</pubDate><guid>https://sandeep007734.github.io/posts/lib-calling/</guid><description>&lt;p&gt;In this post we are exploring how different types of binaries are generated, how function calls work when code is split across multiple files, and how the toolchain (compiler, linker, loader) helps. We&amp;rsquo;ll also cover how to build and install a custom libc for testing and debugging purposes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="file-types-and-high-level-flow"&gt;File Types and High-Level Flow&lt;/h2&gt;
&lt;p&gt;Difference in types of files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.c&lt;/code&gt; / &lt;code&gt;.cpp&lt;/code&gt;: source files&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.o&lt;/code&gt;: object files (compiled but not yet linked)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.a&lt;/code&gt;: static library (archive of &lt;code&gt;.o&lt;/code&gt; files)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.so&lt;/code&gt;: shared library (dynamically linked at runtime)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Typical build pipeline:&lt;/p&gt;</description></item></channel></rss>