`
lobin
  • 浏览: 417450 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C: 第102章 程序依赖的链接库

 
阅读更多

程序依赖的链接库

int main(int argc, char **argv)
{
  return argc != 2 ? -1 : atoi(argv[1]);
}

这个程序很简单,执行的时候传入一个参数,转换为int后直接返回。如果没有指定参数,或者指定了多个参数,直接返回-1。

 

如果传入的是浮点数,则转换成整数返回,如果传入的是字符串,则返回0。

 

传入的字符串转换为int参考atoi函数定义。

 

 

这个返回值在linux下可以通过如下命令获得:

# echo $?

 

在linux下可以通过如下命令获得:

>echo %ERRORLEVEL%

 

编译链接

# gcc return_test.c -o return_test

运行

# ./return_test

# echo $?

255

# ./return_test 0

# echo $?

0

# ./return_test 1

# echo $?

1

# ./return_test 255

# echo $?

255

# ./return_test 3.14

# echo $?

3

# ./return_test -3.14

# echo $?

253

# ./return_test abc

# echo $?

0

 

在Windows下运行如下:

>.\return_test

>echo %ERRORLEVEL%

255

>.\return_test 0

>echo %ERRORLEVEL%

0

>.\return_test 1

>echo %ERRORLEVEL%

1

>.\return_test 255

>echo %ERRORLEVEL%

255

>.\return_test 3.14

>echo %ERRORLEVEL%

3

>.\return_test -3.14

>echo %ERRORLEVEL%

253

>.\return_test abc

>echo %ERRORLEVEL%

0

 

查看程序依赖的链接库

# ldd return_test

linux-gate.so.1 =>  (0x00d1c000)

libc.so.6 => /lib/libc.so.6 (0x00a04000)

/lib/ld-linux.so.2 (0x80031000)

 

可以看到程序至少都依赖了这几个链接库

linux-gate.so

libc.so

ld-linux.so

 

Cygwin下查看程序依赖的链接库

>ldd return_test

        ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c92000

0)

        kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7

c800000)

 

        cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)

 

可以看到程序至少都依赖了这几个链接库

ntdll.dll

kernel32.dll

这两个是Windows提供的。

 

cygwin1.dll

这个是Cygwin提供的。

 

0
2
分享到:
评论

相关推荐

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    pjproject-2.10.zip

    6. **第三方库**:pjsip可能依赖于一些外部库,如音频编解码库(如Opus、G.711等),这些库可能一并打包在压缩包中。 在Android开发中,使用pjsip通常涉及以下步骤: 1. **获取源码**:解压pjproject-2.10.zip,将...

    Java资源包01

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    ftpd&flasheraseall;编译步骤

    进入`./ftpd`目录,找到`ftpcmd.y`文件,在大约第838行附近的结构体定义,需要将其移动到102行之前,以修复一个bug。修改后的结构体定义应该如下: ```c 100 char cbuf[512]; 101 char *fromname; 102 struct ...

    Embarcadero.Delphi.10.2.2.v25.0.29039.2004.Lite.v14.3完整版

    Q3:经测试,在 XP SP3 之前的版本,依旧有问题:无法定位程序输入点 GetLogicalProcessorInformation 于动态链接库 KERNEL32.dll 上。 Q3:只能期待 Unis 大侠再次出手? 其他问题: Q4:怎么 Android SDK 还需要...

    JAVA上百实例源码以及开源项目源代码

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包2

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包7

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    WINRAR5.0正式注册版

    选择以零或任何其他数据填充受损区域的模式,而不是把它们完全从结果文件中切除。 RAR 5.0 恢复记录比恢复记录本身更耐损坏,可以利用部分损坏的恢复记录数据。但是, 请注意,“修复”命令不修复恢复记录的损坏...

Global site tag (gtag.js) - Google Analytics