c.sh

Inline C/asm in Bash
授权协议 Readme
开发语言 SHELL
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 詹高畅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Inline C/Assembler in Bash

Have you ever wanted to combine the speed and safety of Bash with the raw,unbridled power of C? Thanks to @taviso's wonderfulctypes.sh this is possible:

#!/bin/bash

# where ctypes.sh is installed; you will likely have to change this
LD_LIBRARY_PATH=$HOME/local/lib
. ~/code/ctypes.sh/ctypes.sh

# compile stdin to a DSO
function build {
    cfile=$(mktemp /tmp/XXXXXX.c)
    sofile=$(mktemp /tmp/XXXXXX.so)
    while read line; do
        echo $line>>$cfile
    done
    cc -fPIC -shared $cfile -o $sofile
    rm -f $cfile
    echo $sofile
}

# our code
sofile=$(build <<EOF
#include <stdio.h>

void hello_world(void) {
  puts("hello world");
}

int popcnt(int num) {
  int out;
  __asm__("popcnt %1, %0"
          :"=r"(out)
          :"r"(num)
          :"0"
         );
  return out;
}
EOF
)

# clean up when we're done
trap "rm -f $sofile" EXIT

# load the code
dlopen $sofile

# print hello world
dlcall hello_world

# get the popcnt of 5
dlcall -r int -n out popcnt 5
echo $out | egrep -o '[0-9]+'

More details on my blog.

  • /***********************************************************shell脚本执行*************************************************************** chmod +x show.sh ./show.sh /***************************************

  • 1.system函数     函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串     所代表的命令,此命令执行完后随即返回原调用的进程。     在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。     返回值 如果system()在调用/bin/sh时失败则

  •   C语言代码中调用命令行: 1. 使用system(" 命令行 ");    --  执行完命令行后,会返回原先C代码的位置,继续执行。 2. 如果命令行中需要传参,使用 sprintf 先处理好命令行的内容,再 system(" ");。 system("echo 123"); int a = 3; char str1[50]; sprintf(str1, "omxplayer -o hdm

  • shell 脚本各种执行方式(source ./.sh, . ./.sh, ./*.sh)的区别 一:** ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本,脚本中设置的变量在脚本执行完毕后不会保存。 但是若 script.sh 脚本不是以 #!/bin/bash 开头,那么也不会在子进程中执行。

  • 1.在master节点上创建/home/hadoop/tools目录。 [hadoop@master ~]$ mkdir /home/hadoop/tools [hadoop@master ~]$ cd /home/hadoop/tools 2.将本地脚本文件上传至/home/hadoop/tools目录下。 [hadoop@master tools]$ rz deploy.conf [hadoo

  • bin/zookeeper-shell.sh作用是连接zookeeper,并通过命令查询注册的信息,本质上就是zookeeper的语法。 bin/zookeeper-shell.sh zookeeper_host:port[/path] [args…] args参数类型如下 stat path [watch] set path data [version] ls path [watch] delq

  • Linux下执行.sh文件有两种情况: 一、直接./加上文件名.sh,如运行hello.sh为./hello.sh【hello.sh必须有x权限】 二、直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh【hello.sh可以没有x权限】 举例说明: 1.执行当前目录下的sh文件: chmod u+x hello.sh ./hello.sh 或者sh hello.sh 2.执

  • 什么是SH 文件? 被称为脚本Bash的应用程序和使用开发人员文件。 SH文件被称为是创建并保存在Bash的语言,因为它包含的说明都写在该语言。 SH文件可以,如果文本命令shell的命令行界面中键入执行。 SH文件大多是用于程序开发人员,这些文件都是Bash的应用程序非常重要,因为该应用程序主要使用脚本以及命令将被执行,使这个应用程序的工作。而且,由于SH文件是使用这个应用程序编程脚本和它们包含

  • 一、分析说明     为了写出更加完善的tomcat启动方面的自动化脚本,健壮自己用于代码上线自动化部署的脚本,特分析下tomcat的bin目录下的starup.sh脚本,学习标准的sh脚本的编写方法,从中吸取经验   二、脚本分析 #!/bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # co

  • zkCli.sh命令 想要用zkClient链接zookeeper,首先执行如下命令,连接到zookeeper server ./zkCli.sh -server localhost:2181 help命令 help命令用于查询客服端所支持的所用的命令,执行help,输入如下: ZooKeeper -server host:port cmd args stat path [watch]

  • 编写.sh脚本文件 一、bash方式运行 1.第一行是 #! /bin/bash 2.变量使用 变量定义格式为:变量名=值     a=1     b=2 引用变量时需要加上$符号 数学计算要使用[]括起来并且外面加$ sum=$[$a+$b] 用户交互 read从键盘得到变量值  read-p与echo相似,都是打印输出 read -p "Please input a number x,y" r

相关阅读

相关文章

相关问答

相关文档