精华内容
下载资源
问答
  • ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]   做这个小程序主要是将本地的数据库文件通过普通的Form表单提交到数据库进行存储。在这里不直接用file传输,主要是因为系统提供的服务不支持文件处理,...
    ruby -v 写道
    ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
     

    做这个小程序主要是将本地的数据库文件通过普通的Form表单提交到数据库进行存储。在这里不直接用file传输,主要是因为系统提供的服务不支持文件处理,那么就麻烦下客户端将数据转换成base64作为普通表项提交好了。

     

    $KCODE = 'utf8'
    
    require 'base64'
    require 'net/http'
    require 'uri'
    require 'cgi'
    
    data = File.read('default.db')
    
    b64= Base64.encode64(data)
    
    http = Net::HTTP.new('www.abc.com', 80)
    
    path = '/path'
    
    data = "data=#{CGI.escape(b64)}"
    headers = {}
    
    resp, data = http.post(path, data, headers)
    
    puts 'Code = ' + resp.code
    puts 'Message = ' + resp.message
    resp.each {|key, val| puts key + ' = ' + val}
    

     

     带有SSL加密的请求

    $KCODE = 'utf8'
    
    require 'base64'
    require 'net/http'
    require 'net/https'
    require 'uri'
    require 'cgi'
    
    data = File.read('default.db')
    
    b64= Base64.encode64(data)
    
    http = Net::HTTP.new('www.abc.com', 443)
    http.use_ssl = true
    
    #Turning off verify_mode for SSL
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    
    path = '/path'
    
    # GET request -> so the host can set his cookies
    #resp, data = http.get(path, nil)
    
    data = "data=#{CGI.escape(b64)}"
    headers = {
    }
    
    resp, data = http.post(path, data, headers)
    
    puts 'Code = ' + resp.code
    puts 'Message = ' + resp.message
    resp.each {|key, val| puts key + ' = ' + val}
    
     
    展开全文
  • 完善ls练习一的功能: 排序,使用qsort ...将stat结构体中的st_mode——16位二进制数转换成10位的字符串 15-12:type 11:suid 10:sgid 9:sticky 8-6:user 5-3:group 2-0:other /etc/passwd
    完善ls练习一的功能:
    1. 排序,使用qsort
    2. 分栏,计算宽度和行数
    3. 文件“.”的显示需要由-a选项来选择
    4. 详细信息的显示,-l选项
    将stat结构体中的st_mode——16位二进制数转换成10位的字符串
    • 15-12:type
    • 11:suid
    • 10:sgid
    • 9:sticky
    • 8-6:user
    • 5-3:group
    • 2-0:other
    /etc/passwd文件中包含了用户信息,每行对应一个用户,不同的属性按照分号‘:’隔开。
    • 该文件并未包含所有的用户,在某些网络计算系统中,用户需要登录到任何一台主机上,会有NIS统一地进行身份验证,本地保存的只是一个用户子集。
    • getpwuid系统调用具有较好的可移植性,会从NIS中查找如果在本地找不到的话
    /etc/group包含了组信息,字段分别为1,组名;2,组密码;3,组ID;4,组成员列表
    • 一个用户可以属于多个组的
    • getgrgid可以用来访问组列表,移植性同上getpwuid

      1 #include <stdio.h>
      2 #include <sys/types.h>
      3 #include <sys/stat.h>
      4 #include <dirent.h>
      5 #include <pwd.h>
      6 #include <grp.h>
      7 #include <string.h>
      8 #include <time.h>
      9 
     10 void do_ls(char[]);
     11 void show_file_info(char * filename , struct stat * statbufp );
     12 void mode2letter(int mode , char str[]);
     13 void print_uid2name(uid_t uid );
     14 void print_gid2name(gid_t gid );
     15 
     16 int main(int ac , char * av[])
     17 {
     18     if(ac == 1 )
     19     {
     20         do_ls(".");
     21     }
     22     else
     23     {
     24         while( -- ac )
     25         {
     26             printf("%s:\n", * (++ av) );
     27             do_ls(*av);
     28         }
     29     }
     30     return 0 ;
     31 }
     32 
     33 void do_ls(char dirname[])
     34 {
     35     DIR * dir_ptr ;
     36     struct dirent * direntp ;
     37     struct stat statbuf ;
     38 
     39     if( ( dir_ptr = opendir(dirname) )== NULL )
     40     {
     41         fprintf(stderr, "ls1 can not open %s\n", dirname );
     42     }
     43     else
     44     {
     45         while( ( direntp = readdir(dir_ptr ) ) != NULL )
     46         {
     47             if( stat(direntp -> d_name , &statbuf) == -1 )
     48             {
     49                 perror(direntp -> d_name );
     50             }
     51             else
     52             {
     53                 show_file_info( direntp -> d_name , &statbuf);
     54             }
     55         }
     56     }
     57 
     58     closedir(dir_ptr);
     59 }
     60 
     61 void show_file_info( char * filename, struct stat * statbufp )
     62 {
     63     char modestr[11]; // include '\0' so 10 + 1 = 11
     64 
     65     mode2letter(statbufp -> st_mode , modestr) ;
     66     printf("%s",  modestr );
     67 
     68     printf("%4d", (int)statbufp -> st_nlink ) ;
     69     print_uid2name( statbufp -> st_uid ) ;
     70     print_gid2name( statbufp -> st_gid ) ;
     71     printf("%8ld", (long) (statbufp -> st_size) );
     72     printf(" %12.12s", (char*)(4 + ctime(&(statbufp -> st_mtime)) ));
     73     printf(" %s\n",filename );
     74 }
     75 
     76 void mode2letter(int mode , char str[])
     77 {
     78     strcpy(str , "----------");
     79 
     80     if( S_ISDIR( mode ))
     81         str[0] = 'd' ;
     82     else if( S_ISCHR( mode ))
     83         str[0] = 'c' ;    // else for efficience
     84     else if( S_ISBLK( mode ))
     85         str[0] = 'b' ;
     86 
     87     if( mode & S_IRUSR )
     88         str[1] = 'r' ;
     89     if( mode & S_IWUSR )
     90         str[2] = 'w' ;
     91     if(mode & S_IXUSR )
     92         str[3] = 'x' ;
     93 
     94     if( mode & S_IRGRP )
     95         str[4] = 'r' ;
     96     if( mode & S_IWGRP )
     97         str[5] = 'w' ;
     98     if( mode & S_IXGRP )
     99         str[6] = 'x' ;
    100 
    101     if( mode & S_IROTH )
    102         str[7] = 'r' ;
    103     if( mode & S_IWOTH )
    104         str[8] = 'w' ;
    105     if( mode & S_IXOTH )
    106         str[9] = 'x' ;
    107 }
    108 
    109 void print_uid2name( uid_t uid )
    110 {
    111     struct passwd * passwdbufp ;
    112 
    113     if(( passwdbufp = getpwuid(uid)) != (struct passwd *)NULL ) // Except for error
    114     {
    115         printf( "%-8s" , passwdbufp -> pw_name ) ;
    116     }
    117     else
    118     {
    119         printf( "%8d" , uid) ;
    120     }
    121 
    122 }
    123 
    124 void print_gid2name(gid_t gid)
    125 {
    126     struct group * grp_ptr ;
    127     if(( grp_ptr = getgrgid(gid)) != (struct group * )NULL )
    128     {
    129         printf("%-8s" , grp_ptr -> gr_name ) ;
    130     }
    131     else
    132     {
    133         printf("%8d" , gid ) ;
    134     }
    135 }

     

    ls2.c完成了 ls -l 的功能。但是有几点不足之处:

    1. 不显示总数,这个容易解决
    2. 未排序
    3. 不支持参数-a
    4. 假设参数只是目录名
    5. 不能显示指定目录的信息

    以上代码在OpenSuse Leap42.1上测试通过,参考原书《Unix/Linux编程实践教程》,但是含有个人修改部分,不影响功能。

    展开全文
  • 1:文件的类型,d:文件夹l:快捷方式类型-:文件类型 2-4:文件所属用户的权限;rwx(r:可读,w:可写,x:可执行)如果其中哪一位是-,表示2进制数就是0...将后9位二进制数字转换成10进制,即可结合“chmod10进制数文件路...
    1:文件的类型 ,d:文件夹 l:快捷方式类型  - :文件类型
    2-4: 文件所属用户的权限; rwx(r:可读,w:可写,x:可执行)如果其中哪一位是-,表示2进制数就是0,不是-表示1
    5-7: 文件所属用户组的权限;
    8-10:其他用户(其它应用)对本文件的权限。
    将后9位二进制数字转换成10进制,即可结合“chmod  10进制数    文件路径”,即可改变文件的权限。

    在利用adb shell命令进入linux命令行,查看指定目录下的所有文件信息:

    wKioL1WmX_qzo62HAAExjyxIPJI018.jpg





          本文转自屠夫章哥  51CTO博客,原文链接:http://blog.51cto.com/4259297/1674711,如需转载请自行联系原作者

    展开全文
  •  python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要. 准备工作  ...

    应用场景

      Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效。

      python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要.

    准备工作

      环境是可为linux/centos,我Windows10本地是Bash on Ubuntu on Windows,用起来很方便,命令行打bash即进入命令行

      思路是先将py转换为c代码,然后编译c为so文件

      所以要安装以下内容

        python 安装:cython

          pip install cython

        linux 安装:python-devel,gcc

          yum install python-devel

          yum install gcc

     

    初步编译

      在testing文件夹下有your_file.py文件待编译,内容如下

    #-* -coding: UTF-8 -* -
    __author__ = 'Arvin' class test: def say(self): print 'hello'

      新建setup.py,内容如下

    from distutils.core import setup
    from Cython.Build import cythonize
    
    setup(ext_modules = cythonize(["your_file.py"]))

      在bash中执行

    cd testing
    python setup.py build_ext

     

      运行后会生成build文件夹,如下,lib.linux-x86_64-2.7下就是我们想要的.so文件

      

      现在so文件就可以像普通py文件一样导入了

    cd build/lib.linux-x86_64-2.7/
    python
    from your_file import test
    test().say()

     

    集成编译

      最新代码github:https://github.com/ArvinMei/py2so.git

      做了以下内容:

        1.文件夹编译

        2.删除编译出的.c文件

        3.删除编译的temp文件夹

    #-* -coding: UTF-8 -* -
    __author__ = 'Arvin'
    
    import sys, os, shutil, time
    from distutils.core import setup
    from Cython.Build import cythonize
    
    starttime = time.time()
    currdir = os.path.abspath('.')
    parentpath = sys.argv[1] if len(sys.argv)>1 else ""
    setupfile= os.path.join(os.path.abspath('.'), __file__)
    build_dir = "build"
    build_tmp_dir = build_dir + "/temp"
    
    def getpy(basepath=os.path.abspath('.'), parentpath='', name='', excepts=(), copyOther=False,delC=False):
        """
        获取py文件的路径
        :param basepath: 根路径
        :param parentpath: 父路径
        :param name: 文件/夹
        :param excepts: 排除文件
        :param copy: 是否copy其他文件
        :return: py文件的迭代器
        """
        fullpath = os.path.join(basepath, parentpath, name)
        for fname in os.listdir(fullpath):
            ffile = os.path.join(fullpath, fname)
            #print basepath, parentpath, name,file
            if os.path.isdir(ffile) and fname != build_dir and not fname.startswith('.'):
                for f in getpy(basepath, os.path.join(parentpath, name), fname, excepts, copyOther, delC):
                    yield f
            elif os.path.isfile(ffile):
                ext = os.path.splitext(fname)[1]
                if ext == ".c":
                    if delC and os.stat(ffile).st_mtime > starttime:
                        os.remove(ffile)
                elif ffile not in excepts and os.path.splitext(fname)[1] not in('.pyc', '.pyx'):
                    if os.path.splitext(fname)[1] in('.py', '.pyx') and not fname.startswith('__'):
                        yield os.path.join(parentpath, name, fname)
                    elif copyOther:
                            dstdir = os.path.join(basepath, build_dir, parentpath, name)
                            if not os.path.isdir(dstdir): os.makedirs(dstdir)
                            shutil.copyfile(ffile, os.path.join(dstdir, fname))
            else:
                pass
    
    #获取py列表
    module_list = list(getpy(basepath=currdir,parentpath=parentpath, excepts=(setupfile)))
    try:
        setup(ext_modules = cythonize(module_list),script_args=["build_ext", "-b", build_dir, "-t", build_tmp_dir])
    except Exception, ex:
        print "error! ", ex.message
    else:
        module_list = list(getpy(basepath=currdir, parentpath=parentpath, excepts=(setupfile), copyOther=True))
    
    module_list = list(getpy(basepath=currdir, parentpath=parentpath, excepts=(setupfile), delC=True))
    if os.path.exists(build_tmp_dir): shutil.rmtree(build_tmp_dir)
    
    print "complate! time:", time.time()-starttime, 's'

     

     

    注意问题

      1.编译后执行需要相同的python版本和编码

      2.py中使用__file__内置变量的文件编译后调用时会出问题,暂时没有解决,还需要使用pyc代替

      3.使用时注意权限控制

     

    转载需注明出处:http://www.cnblogs.com/ke10/p/py2so.html

    转载于:https://www.cnblogs.com/mangoVic/p/6951250.html

    展开全文
  • Linux 编译、连接原理

    2019-07-19 19:36:08
    这篇博客是讲述计算机是如何将人类所编写的高级语言(字符语言)转换自己所认识的二进制语言,对程序运行的。 一、预编译 (将.c文件转换为.i文件) 1.#define 进行宏替换 例如#define max 10 对全文中的所有...
  • 4、将配置文件转换成二进制文件,并进行安装;5、更改属主属组,编辑环境变量;6、复制配置文件和启动脚本,并添加MySQL服务;7、初始化数据库,并建立软连接; 8、配置启动脚本;9、启动服务; 10、进入MySQL,并...
  • 自:http://www.cnblogs.com/xiaouisme/archive/2012/10/04/2711691.html 安装boost: ... boost库的大部分都可以直接引用头文件就行了,因为大多数都是头文件里模板加...但是也有些是需要安装成二进制lib的,比如
  • java JVM

    2019-11-30 17:09:23
    java 全过程 ...类加载器ClassLoader加载二进制目标文件,然后转成对应机器(计算机)机器二进制文件,在电脑上执行 流程图: javac.exe.java 源文件JVM .class 目标文件windows 10 JVMLinux...
  • Linux的最早起源是在1991年10月5日由一位芬兰的大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通...
  • linux.chm文档

    2015-07-07 06:37:39
    chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 chmod g+s /home/public 设置一个目录的SGID 位 - 类似...
  • 8.2 字符串IP地址和二进制IP地址的转换 217 8.2.1 inet_xxx()函数 217 8.2.2 inet_pton()和inet_ntop()函数 219 8.2.3 使用8.2.1节地址转换函数的例子 220 8.2.4 使用函数inet_pton()和函数inet_ntop()的...
  • 8.2 字符串ip地址和二进制ip地址的转换 216 8.2.1 inet_xxx()函数 216 8.2.2 inet_pton()和inet_ntop()函数 218 8.2.3 使用8.2.1节地址转换函数的例子 219 8.2.4 使用函数inet_pton()和函数inet_ntop()的例子 ...
  • 反序列化:将上一步生成的二进制数据转换数据结构或者对象的过程 我最先接触到的序列化和反序列化是在学习 linux 网络编程的时候。举如下例子: struct Book{ int Id; char BookName[10]; char Author[10]; ...
  • - 表示二进制文件 l 软链接文件link 详细分析:drwxr-xr-x 2 root root 4096 12-01 20:52 bin drwxr-xr-x r:read w:write x:execute执行 -:表示无此权限 所有者:u user 所属组:g group 其他人:o other 2:...
  • tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供...
  • 第1 章Linux操作系统概述................... .......................................................................... 2 1.1 Linux发展历史........................................................ 2 ...
  • 遥控器按键键值映射

    千次阅读 2016-02-23 12:30:00
    linux环境下输入getevent命令遥控器按一个键,出现的第行,第个数,就是这个键对应的16进制,转成10进制之后放入system\usr\keylayout\Vendor_2389_Product_00a8_Version_0200.kl文件中,然后让这个键对应1,2...
  • 用TCP/IP进行网际互联第三卷:客户-服务器编程与应用(Linux/POSIX套接字版) 基本信息 原书名:Internetworking With TCP/IP Vol Ⅲ:Client-Server Programming And Applications Linux/POSIX Sockets V 作者: ...
  • 精通Qt4编程(第版)源代码

    热门讨论 2014-01-19 13:07:18
    \8.2 操作二进制文件 220 \8.3 临时文件 222 \8.4 目录操作和文件管理 222 \8.4.1 目录操作 222 \8.4.2 文件管理 224 \8.5 监视文件系统变化 225 \8.6 文件引擎 226 \8.7 小结 226 \第9章 网络 227 \9.1 ...
  • 把软件程序转换计算机能够理解的二进制指令的PGI编译器是高性能计算领域公认的最好软件,在各种应用领域和产品性能评测中表现出世界一流的性能,经常被引用为业内产品的性能和可靠性参考标准。 最新版的PGI 7.1...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
  • 设定值是8位的一个二进制数,记作a7 a6 a5 a4 a3 a2 a1 a0,推算出此二进制数之后,四四拆分转换为2位的十进制数加1即为此设定值 a7表示enabled。 a6=0,没具体应用,不用管。 a5~a0,存放tag。** 记录Mic at Ext...
  • 二进制文件可供下载这里.确保将二进制文件的路径放入您的PATH. 来自 Crates.io 这至少需要rust 1.34 和 Cargo 安装.安装 Rust 后,在终端中键入以下内容: cargo install mdbook 这将为您下载并编译 mdBook,剩下要做...
  • 一元次方程嵌套求有序3个数闰年计算矩形区域随机数ifelse回文数判断10进制转化16进制16进制转十进制暴力穷举无限循环指令循环同步异步黑科技读写内存读写内存无限循环监测重点与作业day5  复杂逻辑循环while...
  • Python Cookbook

    2013-07-31 22:33:26
    1.11 检查一个字符串是文本还是二进制 23 1.12 控制大小写 25 1.13 访问子字符串 26 1.14 改变多行文本字符串的缩进 29 1.15 扩展和压缩制表符 31 1.16 替换字符串中的子串 33 1.17 替换字符串中的子串-Python...

空空如也

空空如也

1 2 3
收藏数 57
精华内容 22
关键字:

linux二进制转成10进制

linux 订阅