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