精华内容
下载资源
问答
  • 就是eclipse无法运行,双击 eclipse.run 提示 没有为可执行文件 文件类型安装应用程序。, 'Microsoft Yahei' !important; text-shadow: rgb(153, 153, 153) 0.01em 0.01em 0.01em !important;" />各位朋友指点指点,...

    ====http://zhidao.baidu.com/link?url=LFjvNsyqc0MN99fKpiRP7H8P4MkCfsOLm7qbVUFZJaFgnr6q69pcbMfE-zI6UoFYhWontcCImQ29JVsItDjqT35yX2idlUlLgSkzx5ZKym7




    我用的是Ubuntu 12.04 LTS版本, JDK 都安装成功,输入java -version 都是正确输出java 版本。就是eclipse无法运行,双击 eclipse.run 提示 没有为可执行文件 文件类型安装应用程序。<br style="font-family: 'Microsoft Yahei', 'Microsoft Yahei' !important; text-shadow: rgb(153, 153, 153) 0.01em 0.01em 0.01em !important;" />各位朋友指点指点,我也是刚刚学习 linux 。
    举报| 2013-10-23 10:17提问者采纳
      ./run应该是安装包吧!你试试通过终端,在该安装文件路径下, sudo ./eclipse.run 看能不能运行。也可以试试用软件中心打开该文件。
    追问
    sudo ./eclipse.run 也不能运行
    回答
    如果确定你的文件没有问题,那么试试更改文件访问权限。
    终端内进入文件所在路径
    chmod u+x 文件名.run
    sudo ./文件名.run 或者试试 sudo bash ./文件名.run
    提问者评价
    谢谢!
    展开全文
  • 1、python 字典的用法 from collections import OrderedDict dict =OrderedDict() ...2、python中删除指定类型文件 import sys, csv , operator import os import glob for i in range(0, 10)

    1、python 字典的用法

    from collections import OrderedDict
    dict =OrderedDict()
    dict['foo']=3
    dcit['aol']=1

    2、python中删除指定类型的文件

    import sys, csv , operator
    import os
    import glob
    
    for i in range(0, 10):	
    	path = "C:\\Folder_" + str(i) 
    	for infile in glob.glob( os.path.join(path, '*.csv') ):
    		os.remove(infile)


    3、python执行可执行文件后返回可执行文件的输出值

    import subprocess
    proc = subprocess.Popen('cmd', shell=True)
    cme = proc.communicate()
    ret = proc.poll();


    or

    import subprocess
    proc = subprocess.Popen('cmd', shell=True)
    proc.communicate()
    ret = proc.returncode


    or

    import subprocess
    ret = subprocess.call(cmd, shell=True)

       如果使用shell=True这个参数。这个时候,我们使用一整个字符串,而不是一个表来运行子进程。Python将先运行一个shell,再用这个shell来解释这整个字符串。

      shell=True参数会让subprocess.call接受字符串类型的变量作为命令,并调用shell去执行这个字符串,当shell=False是,subprocess.call只接受数组变量作为命令,并将数组的第一个元素作为命令,剩下的全部作为该命令的参数。



    参考网址:https://stackoverflow.com/questions/1872329/storing-python-dictionary-entries-in-the-order-they-are-pushed

    参考网址:http://blog.csdn.net/vernice/article/details/46424921

    参考网址:http://blog.csdn.net/carolzhang8406/article/details/22286913

    参考网址:https://docs.python.org/2/library/subprocess.html

    展开全文
  • ELF可执行文件的理解

    千次阅读 2019-08-06 17:23:15
    ELF可执行文件的理解 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(object files)中都放了什么东西、以及都以什么样的格式去放这些东西。ELF是构成众多xNIX系统的基础...

    ELF可执行文件的理解

           ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(object files)中都放了什么东西、以及都以什么样的格式去放这些东西。ELF是构成众多xNIX系统的基础之一。

    1 对象文件的三个种类

    1.1 可重定位的对象文件(Relocatable object file)

           这是由汇编器汇编生成的.o文件。链接器(link editor)拿一个或一些Relocatable object files作为输入,经链接处理后,生成一个可执行的对象文件(Executable object file)或者一个可被共享的对象文件(Shared object file)。可以使用ar工具将众多的.o可重定位的对象文件归档成.a静态库文件。

    1.2 可执行的对象文件(Executable object file)

           文本编辑器vi、调试用的工具gdb、播放MP3歌曲的软件mplayer等等都是Executable object file,另外一种可执行的脚本(如shell脚本),不是可执行的对象文件,只是文本文件,但是执行这些脚本所用的解释器就是executable object file,比如bash shell程序。

    1.3 可被共享的对象文件(Shared object file)

           这些就是所谓的动态库文件,也即.so文件。如果拿前面的静态库来生成可执行程序,那每个生成的可执行程序中都会有一份库代码的拷贝。动态库在发挥作用的过程中,必须经过两个步骤:

    1. 链接编辑器(link editor)拿它和其他Relocatable object file以及其他shared object file作为输入,经链接处理后,生成另外的shared object file或者executable file。
    2. 在运行时,动态链接器(dynamic linker)拿它和一个executable file以及另外一些shared object file来一起处理,在Linux系统里面创建一个进程映像。

    2 section

           在ELF对象文件的最前面有一个ELF头文件,里面记载了所适用的处理器、对象文件类型等各种信息。下图描述了ELF对象文件的基本组成:

     

           为什么左右两个类似的图来说明ELF的组成格式?这是因为ELF格式需要使用在两种场合:(1)组成不同的可重定位文件,以参与可执行文件或者可被共享的对象文件的连接构建;(2)组成可执行文件或者可被共享的对象文件,以在运行时内存中进程映像的构建。

           Section是在ELF文件里头,用以装载内容数据的最小容器,是被链接器使用的。在ELF文件里面,每一个section内都装在了性质属性都一样的内容,比方:

    1) .text section 里装载了可执行代码;

    2) .data section 里面装载了被初始化的数据;

    3) .bss section 里面装载了未被初始化的数据;

    4) 以 .rec 打头的 sections 里面装载了重定位条目;

    5) .symtab 或者 .dynsym section 里面装载了符号信息;

    6) .strtab 或者 .dynstr section 里面装载了字符串信息;

    7) 其他还有为满足不同目的所设置的section,比方满足调试的目的、满足动态链接与加载的目的等等。

           一个ELF文件中到底有哪些具体的section,由包含在这个ELF文件的section head table(SHT)决定。在SHT中,针对每一个section,都设置一个条目,用来描述对应的这个section,其内容主要包括该section的名称、类型、大小以及在整个ELF文件中的字节偏移位置等等。

           链接器在链接可执行文件或动态库的过程中,它会把来自不同可重定位对象文件中的相同名称的section合并起来构成同名的section。接着,它又会把带着相同属性(比方都是只读并可加载的)的section都合并成所谓segment(段)。Segment作为链接器的输出,常被称为输出section。开发者可以控制哪些不同.o文件的section来最后合并构成不同名称的segment。

           一个单独的 segment 通常会包含几个不同的 sections,比方一个可被加载的、只读的segment 通常就会包括可执行代码section .text、只读的数据section .rodata以及给动态链接器使用的符号section .dymsym等等。section 是被链接器使用的,但是 segments 是被加载器所使用的。加载器会将所需要的 segment 加载到内存空间中运行。和用 sections header table 来指定一个可重定位文件中到底有哪些 sections 一样。在一个可执行文件或者动态库中,也需要有一种信息结构来指出包含有哪些 segments。这种信息结构就是 program header table,如ELF对象文件格式中右边的 execute view 所示的那样。

           为什么会有这样的一个segment?这是因为我们写的应用程序通常都需要使用动态链接库.so。程序在Linux里面是怎样运行起来的?当在shell中敲入一个命令要执行时,内核会帮我们创建一个新的进程,它再往这个新进程的进程空间里面加载进可执行程序的代码段和数据段后,也会加载进动态链接器(在Linux里面通常就是 /lib/ld-linux.so 符号链接所指向的那个程序,它本身就是一个动态库)的代码段和数据。在这之后,内核将控制传递给动态链接库里面的代码。动态链接器接下来负责加载该命令应用程序所需要使用的各种动态库。加载完毕,动态链接器才将控制传递给应用程序的main函数。这样应用程序才得以运行。

           头文件中最重要的三个segment是:代码段、数据段和堆栈段。

    展开全文
  • 1.C语言创建程序 1.1C语言创建(分为4个步骤) 编辑 ...编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。 (该部分编译是指汇编器编译汇编语言或者编译器编译...

    转自:https://www.jianshu.com/p/7c609b70acbd

    1.C语言创建程序

    1.1C语言创建(分为4个步骤)
    • 编辑
    • 编译
    • 链接
    • 执行

    编辑:就是创建和修改C程序的源代码-我们编写的程序称为源代码。
    编译:就是将源代码转换为机器语言。编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。
    (该部分编译是指汇编器编译汇编语言或者编译器编译高级语言)
    链接:链接器将源代码由编译器产生的各种模块组合起来,再从C语言提供的程序库中添加必要的代码模块,将它们组成一个可执行的文件。在windows下扩展名为.exe,Unix下无扩展名。
    执行:运行程序。

    C.png
    1.2什么是源代码,目标文件,可执行文件。

    源代码 ——源文件就是存放程序代码的文件。通常我们编辑代码的文件就是源文件。

    • 源代码相对目标代码和可执行代码而言的。
    • 源代码就是用汇编语言和高级语言写出来的地代码。

    目标文件——指源代码经过编译程序产生的能被cpu直接识别二进制代码。

    • 目标代码指计算机科学中编译器或汇编器处理源代码后所生成的代码,它一般由机器代码或接近于机器语言的代码组成。
    • 目标文件包括着机器代码(可直接被计算机中央处理器履行)和代码在运行时使用的数据,如重定位信息,如用于链接或调试的程序符号(变量和函数的名字),另外还包括其他调试信息。
    gcc -c main.c 
    编译main.c ,生成目标文件main.o,但不进行link. 
    gcc -o main.o
    链接成可执行文件main

    可执行文件——可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的。 连接程序系统库文件连接就生成可执行文件。

    例如:*.obj是程序编译之后生成的目标文件,连接程序再将这个文件与系统库文件连接就生成可执行文件
    
    1.3链接器的作用
    Screen Shot 2017-06-12 at 4.32.06 PM.png

    根据上面的图,我们可以看到链接器还额外链接了2个部分。

    目标代码文件中所缺少的第一个元素是一种叫做启动代码(Start-up code)的东西,此代码相当于您的程序和操作系统之间的接口。例如你可以在dos 或Linux下运行一个 IBM PC 兼容机,在两种情况中硬件是相同的,所以都会使用同样的目标代码,但是 DOS与Linux要使用不用的启动代码,因为这两种系统处理程序的方式不同的。

    所缺少的第二个元素是库例程的代码。几乎所有C程序都利用标准库中所包含的例程(称为函数)。例如,程序中的函数printf()。目标代码文件不包含这一函数的指令。实际代码存储在另一个称为“库”的文件中,库文件中包含许多函数的目标代码。

    链接器的作用是将这3个元素(目标代码、系统的标准启动代码和库代码)结合在一起,并将他们存放在单个文件,即可执行文件中。对库代码来说,链接器只从库中提取您所使用的函数所需的代码。

    可以得出结论:目标文件和可执行文件都是由机器语言指令组成的。但目标文件只包含您所编写的代码转换成的机器语言,而可执行文件还包含您所使用的库例程以及启动代码。

    下面这幅图能大致说明一下链接的情况。


    1.png

    这是一个main.o目标代码,内部有main,foo,bar三个函数。

    U main表示main这个符号在crtl1.o中用到了,但是没有定义。因此需要main.o提供定义并和crtl1.o链接在一起。main整个程序的入口实际上是_crtl1.o中的 _start,它做了一些初始化工作(启动历程),然后调用C代码中提供的main.c函数。libc是运行时候动态链接libc共享库(库中包含常用的函数)。

    所以程序的入口点其实是_start,main函数实际上是被_start调用。

    1.4gcc命令图
    QQ截图20170613151139.png

    2.ELF文件(该部分分析目标文件和可执行文件的,涉及部分汇编指令)

    ELF文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型:

    • 可重定位的目标文件
    • 可执行文件
    • 共享库

    ELF文件格式提供了两种不同的视角,在汇编器和链接器看来,ELF文件是由Section HeaderTable描述的一系列Section的集合,而执行一个ELF文件时,在加载器(Loader)看来它是 由Program Header Table描述的一系列Segment的集合。如下图所示。


    Screen Shot 2017-06-10 at 10.01.54 PM.png

    左边是从汇编器和链接器的视角来看这个文件,开头的ELF Header描述了体系结构和操作系统 等基本信息,并指出Section Header Table和Program Header Table在文件中的什么位 置,Program Header Table在汇编和链接过程中没有用到,所以是可有可无的,Section Header Table中保存了所有Section的描述信息。右边是从加载器的视角来看这个文件,开头 是ELF Header,Program Header Table中保存了所有Segment的描述信息,Section Header Table在加载过程中没有用到,所以是可有可无的。注意Section Header Table和ProgramHeader Table并不是一定要位于文件开头和结尾的,其位置由ELF Header指出,上图这么画只是为了清晰。

    目标文件需要链接器做进一步处理,所以一定有Section Header Table;可执行文件需要加载运行,所以一定有Program Header Table;而共享库既要加载运行,又要在加载时做动态链接, 所以既有Section Header Table又有Program Header Table。

    • section:C语言内存中的.text,.data,.bss.....
    • Segment:是指在程序运行时加载到内存的具有相同属性的区域,由一个或多个Section组成,比如有两个Section都要求加载到内存后可读可写,就属于同一个Segment。有些Section只对汇编器和链接器有意义,在运行时用不到,也不需要加载到内 存,那么就不属于任何Segment 。

    2.1重定位目标文件

    在进行该部分之前,我们先查看一下网上的部分重定位目标文件的资料。

    资料一:

    汇编器所产生的目标文件至少包括三个区,即文本区(text),数据区(data)和bss区。文本区一般包括程序的代码和常量,数据区通常存放全局变量等内容,bss区用于存放未初始化的变量或作为公共变量存储空间。在一个目标文件中,其text区从地址0开始,随后是data区,再后面是bss区。而要运行程序,必须装载到内存中,所以这些区的地址需要在内存中重新安排,也就是重定位。

    资料二:

    编译器编译后产生的目标文件是可重定位的程序模块,并不能直接运行,链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行的可执行文件的过程。
    重定位是链接器在完成符号解析后(知道了各个输入模块的代码段和数据段的大小)的一个步骤,其作用顾名思义就是重新定位,确定比如指令,全局变量等在运行时的存储器地址。

    资料三:

    比如说两个编译后的可重定位目标文件obj1.o和obj2.o
    在obj1.o里面定义了一个全局变量glob(在obj1里面记录了glob相对于该文件数据段的相对地址), 而obj2.0里面又引用了这个全局变量glob。
    链接的重定位就是要确定在链接后的可执行程序中glob的地址,而不是相对于obj1的地址,从而使obj2也能通过地址调用glob。
    当然重定位并不只是全局变量,还包括外部函数,指令等运行时地址的确定

    资料四:

    当你在程序中写上一个全局变量或者是一个函数时,这个定位过程会经历几个阶段:
    1.在这个目标文件中的相对定位,一个目标文件中对此文件中的所有函数,变量进行符号描述,比如一个变量A,它所占的相对地址是多少?是全局的?或者是静态的,或者是外部的??
    2.在连接多个目标成一个可执行文件时,会再次对这个变量进行重定位,也就是在这个可执行文件中进行对此变量进行描述,同目标文件中的描述差不多,只不过此变量不再有外部,内部之分,都成了本地变量,并且会将所有全局变量存放在一定的逻辑地址中,这是通过连接脚本文件与各个目标文件中的相对地址共同决定的
    3.最终的操作系统加载这个可执行文件时,会对这些变量与函数地址再次进行重定位,其方式就是首先分析这个可执行文件中的不同段,读出相应的描述表,然后通过逻辑地址与物理地址进行映射出,最终就将可执行的二进制码加进了真实的物理内存了,关于分析可执行文件格式与物理地址的转换,不同的CPU与操作系统的实现方式会有不同之处

    接下来我们开始实践部分,首先写一个求一组数的最大值的汇编程序max.s。

    Screen Shot 2017-06-11 at 3.42.29 PM.png

    现在有一个max.o目标文件,我们用readlf工具读取其ELF Header和Section Header Table


    Screen Shot 2017-06-10 at 10.20.59 PM.png

    ELF Header中描述了操作系统是UNIX,体系结构是80386。Section Header Table中有8个Section Header,从文件地址200
    (0xc8)开始,每个Section Header占40字节,共320字节,到文件地址0x207结束。这个目标文件没有Program Header。文件地址是这样定义的:文件开头第一个字节的地址是0,然后每个字节占一个地址。

    QQ图片20170611130217.png

    从Section Header中读出各Section的描述信息。
    Addr是这些段加载到内存中的地址(程序中的地址都是虚拟地址),加载地址要在链接时填写,现在空缺,所以是全0。
    OffSize两列指出了各Section的文件地址,比如.data段从文件地址0x60开始,一共0x38个字节,回去翻一下程序,.data段定义了14个4字节的整数,一共是56个字节,也就是0x38。

    根据以上信息可以描绘出整个目标文件的布局。

    QQ图片20170611132839.png

    ** Section Header Table**:读出各Section的描述信息。
    .shstrtab:保存着各Section的名字,比如.text,.data.....。
    .strtab:保存着程序中用到的符号的名字.比如汇编程序的start_loop:和loop_exit符号。(对应的就是for循环)。
    **.data **:保存程序中已初始化的全局变量和静态变量以及字符串常量。
    .bss:存放程序中未初始化的全局变量和静态变量。
    .text:存放程序执行代码。
    .rel.text:告诉链接器指令中的哪些地方需要做重定位。
    下节分析。

    Screen Shot 2017-06-11 at 2.40.30 PM.png

    我们看一下.text段内容


    Screen Shot 2017-06-11 at 3.44.53 PM.png

    ![Uploading QQ截图20170613113520_952796.png . . .]

    text段代码中,一些跳转指令和内存访问指令中的地址都是符号的相对地址,下一步链接器要修改这些指令,把其中的地址都改成加载时的内存地址,这些指令才能正确执行。

    2.2可执行文件

    现在分析可执行文件max。


    Screen Shot 2017-06-11 at 2.45.59 PM.png
    Screen Shot 2017-06-11 at 2.47.07 PM.png
    Screen Shot 2017-06-11 at 2.47.43 PM.png
    Screen Shot 2017-06-11 at 2.48.05 PM.png

    在ELF Header中,Type改成了EXEC,由目标文件变成可执行文件了多了两个Program Header,少了两个Section Header。

    在Section Header Table中,.text和.data的加载地址分别改成了0x0804 8074和0x0804 90a0。.bss段没有用到,所以被删掉了。.rel.text段就是用于链接过程的,链接完了就没用 了,所以也删掉了。

    多出来的Program Header Table描述了两个Segment的信息。.text段和前面的ELF Header、Program Header Table一起组成一个Segment(FileSiz指出总长度 是0x9e),.data段组成另一个Segment(总长度是0x38)。VirtAddr列指出第一 个Segment加载到虚拟地址0x0804 8000,第二个Segment加载到地址0x0804 90a0。Flg列指出第一个Segment的访问权限是可读 可执行,第二个Segment的访问权限是可读可写。

    Screen Shot 2017-06-11 at 2.54.13 PM.png

    原来目标文件符号表中的Value都是相对地址,现在都改成绝对地址了。

    我们查看一下.txt段内容。


    Screen Shot 2017-06-11 at 3.32.25 PM.png
    现在我们对比一下目标文件和可执行文件的不同。

    目标文件.text和.data段地址


    QQ截图20170613113520.png

    可执行文件.text和.data段地址


    QQ截图20170613113500.png

    目标文件中跳转指令


    Screen Shot 2017-06-11 at 3.35.56 PM.png

    可执行文件中跳转指令


    Screen Shot 2017-06-11 at 3.36.18 PM.png

    目标文件中内存访问指令


    Screen Shot 2017-06-11 at 3.37.08 PM.png

    可执行文件中内存访问指令


    • 可以看到指令中的相对地址都改成绝对地址了。
    • 结合上2部分分析,我们可以看到。
    • .text和.data段代码加载到内存中的地址由空缺0变成了具体地址。
    • .text段代码中一些跳转指令和内存访问指令中的地址由相对地址改成加载时的内存地址,
    • .data段代码也由相对地址改为绝对地址。

    3.静态库和共享库

    :有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf)。

    共享库和静态库的区别:在链接libc共享库时只是指定了动态链接器和该程序所需要的库文件,并没有真的做链接,可执行文件调用的libc库函数仍然是未定义符号,要在运行时做动态链接。而在链接静态库时,链接器会把静态库中的目标文件取出来和可执行文件真正链接在一起。

    • 静态库链接后,指令由相对地址变为绝对地址,各段的加载地址定死了。
    • 共享库链接后,指令仍是相对地址,共享库各段的加载地址并没有定死,可以加载到任意位置。

    静态库好处:静态库中存在很多部分,链接器可以从静态库中只取出需要的部分来做链接 (比如main.c需要stach.c其中的一个函数,而stach.c中有4个函数,则打包库后,只会链接用到那个函数)。另一个好处就是使用静态库只需写一个库文件名,而不需要写一长串目标文件名。

    该部分是参照《一站式学习C编程》所做的总结,理解程度比较初步。

    展开全文
  • Unix文件类型

    千次阅读 2017-08-12 12:49:54
    UNIX系统的大多数文件是普通文件或目录,但是也有另外一些文件类型文件类型包括如下几种。(1)普通文件(regular file).这是最常用的文件类型,这种文件包含了某种形式的数据。至于这种数据是文本还是二进制数据,...
  • go中生成可执行文件

    千次阅读 2020-11-01 12:03:02
    这里介绍对go项目进行打包编译生成可执行文件,其实包含参数的传递、目标可执行文件类型、打包对象。 二、使用 go项目的编译命令为go build,编译包,生成可执行文件(包含main包),默认生成位置在当前目录下。 (注意...
  • Linux文件类型

    千次阅读 多人点赞 2016-12-23 22:59:27
    一、linux下面所有东西都是文件,既然是文件那么这些文件类型又是如何进行区分的呢??? 在windows下面是通过文件的扩展名来区分文件类型的,但是在linux中却不是这儿样的。在linux中就没有所谓的文件扩展名,一...
  • linux可执行文件格式

    万次阅读 2017-05-24 23:27:05
    1. 可执行文件的任务: ...可执行文件运行: 可执行文件被加载(load)到内存中执行。 2. a.out assembler and link editor output汇编器和链接编辑器的输出格式(简述)a.out 是一种古老的文件格式,简单,紧凑,
  • ubuntu 把文件设置为可执行文件

    千次阅读 2017-03-15 09:23:53
    首先,要确保这个文件类型可执行的。 有两种办法把文件设置为可执行文件。 1) 直接在文件属性标签中选中 "可执行",--b 如果用的是图形界面,这个方法最简单直接。 2) 使用命令 chmod +x file.sh。将...
  • linux 查找可执行文件

    万次阅读 2018-03-23 10:33:31
    转自:https://www.cnblogs.com/binyue/p/4707948.htmlLinux下的可执行文件Linux下如何查找可执行文件,作为一个Linux小菜...Linux下能简单根据文件后缀判断是否可执行。linux下判断一个文件是否可执行,关键看是...
  • Matlab +GUI+数据库+可执行文件

    千次阅读 2018-10-15 18:55:50
    Matlab +GUI+数据库+可执行文件 目的:Matlabl通过GUI界面输入数据库筛选条件,取出数据库数据作图,并生成可执行文件文件 一、Matlab GUI设计 方法:命令行输入guide,选择blank GUI,后弹出以下界面,可根据需求...
  • Linux下ELF可执行文件装载与运行

    千次阅读 2015-03-10 15:58:31
    一、Linux下装载ELF可执行文件的过程 1、创建子进程  内核创建task_struct数据结构,继承父进程的虚拟地址空间(Virtual Memory Space,VMS)。 2、调用execve()系统调用执行指定的ELF文件 (1)调用内核态函数sys_...
  • Linux下七种文件类型、文件属性及其查看方法

    万次阅读 多人点赞 2018-02-01 22:11:15
    1、七种文件类型 普通文件类型 Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-] 目录文件 就是目录, 能用 # cd 命令进入的。第...
  • ELF文件、目标文件、可执行文件的关系 目标文件是源代码经过编译但未进行链接的那些中间文件,在linux中的.o文件,它跟可执行文件的内容与...ELF文件类型 说明 实例 可重定位文件(Relocatable File) ...
  • linux的可执行文件是什么后缀

    千次阅读 2020-03-05 09:32:26
    一般没有后缀,linux一般可以自动识别文件类型,有很多类型都不用加后缀。...Linux下的后缀名并没用windows下那么有用,Linux根据扩展名判断文件类型,而是根据文件的内容来判断。所以扩展名的作...
  • ELF 文件规范   ELF(Executable and Linking Format)是一个二进制文件规范。...  现在流行的可执行文件格式 (Executable File Format),主要是 Windows 下的 PE(Portable Executable)和 Linux 的 EL...
  • Linux 可执行文件结构与进程结构

    千次阅读 多人点赞 2015-04-19 10:15:38
    Linux可执行文件结构 在 Linux 下,程序是一个普通的可执行文件,以下列出一个二进制可执行文件的基本情况: 可以看出,此可执行文件在存储时(没有调入到内容)分为代码区(text)、数据区(data)和未初始化数据...
  • 一、问题要运行的npm script如下(主要看写法):"...},在windows下执行npm run dev命令时出现报错:WEBPACK_ENV不是内部或外部命令,也不是可运行的程序 或批处理文件二、解决这其实是两条命令,可以在lin...
  • 为什么windows二进制可执行文件无法在linux上运行? 通过对linux和windows的学习可以知道在windows上的二进制可执行文件大多为.exe或 .msi,而linux上为.elf;由于不同的操作系统对应的内核接口实现是不同的,所以在...
  • //android Studio keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件 遇到这个问题好久了,一直没解决今天搜集了大量的资料,有的说什么Java没配置好,不是扯犊子吗?!Android Studio能打开,怎么...
  • 正常的情况下,我们双击安装在电脑的各种软件就可以直接运行了,我们安装在电脑上的软件也就是.exe文件可执行的应用程序)。 如果我们双击无法打开,一般来说,就是你的注册表里面的命令被修改了,注册表是什么,...
  • 第七节可执行文件运行时发生了什么 1. 文件夹模式下如何运行 2. 单文件模式下如何运行 PyInstaller通过分析你编写的Python脚本,获取你在代码中需要用到的模块和库。接着PyInstaller将相应的模块和库文件全部进行...
  • linux下在转换system.img文件类型时,提示 首先进入到了可执行文件所在目录下,并将system.img也放在同一目录下: 查看文件信息,可以看到文件是存在的,并且是可以执行的。 于是执行如下命令: 执行后...
  • Ubuntu使用pyinstaller打包成可执行文件

    千次阅读 2019-11-04 11:17:09
    还有运行的时候最好是用终端运行,因为要是打-w的话,运行不成功,你都知道是什么问题,在终端可以有提示,使用方法:cd到可执行文件目录下,比如我的文件名字是test,输入命令 ./test 执行文件,对了,...
  • Linux下可执行文件格式详解

    万次阅读 2014-08-21 17:49:31
    Linux 可执行文件 ELF格式
  • 判断文件是否是可执行文件

    千次阅读 2005-02-10 21:58:00
    判断文件是否是可执行文件其实可以调用API函数GetBinaryType来完成。但是我想用这个方法,因为还有其他的方法来判断,虽然这样比较麻烦,也一定特别的准,但是我觉得这可以让我们对文件有所了解。好,lets go! ...
  • %MAVEN_HOME%\bin”换成绝对路径:“D:\Program Files (x86)\apache-maven-3.5.2-bin.zip\apache-maven-3.5.2\bin”,执行mvn -version指令之后还是不行; 2)在Path中添加 %SystemRoot%\system32;%SystemRoot%;%...
  • Matlab 生成可执行文件

    千次阅读 2012-12-11 09:12:33
    相信很多用Matlbab开发的同学们都对Matlab强大的...首选当然是把M文件导出成一个在WINDOWS上运行的EXE文件了。下面开始说说如何导出:  1.在Matlab的安装目录下D:\MATLAB\R2008a\toolbox\compiler\deploy\win32里面
  • 今天发邮件时出现这个错误: bes_1.3.8.zip 包含可执行文件。出于安全性考虑,Gmail 允许发送这类文件。 =>不过重新打包成7zip格式就OK了…

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,778,353
精华内容 711,341
关键字:

不可执行文件类型