C语言和sh脚本的杂交代码
在网上看到了一个把 C语言和bash杂并起来的例子,这个示子如下所示。在下面这个例子中,我们把脚本用#if 0这个预编译给起来,这样就不会让其编译到C语言中了。
if 0
echo "Hello from bash!"
exit
endif
include <stdlib.h>
include <stdio.h>
int main(int argc, char* argv[]) {
puts("Hello from C!");
return EXIT_SUCCESS;
}
下面,让我看看如果来使用这样的程序:
$ sh test.sh.c
Hello from bash!
$ gcc test.sh.c -o test
$ ./test
Hello from C!
你甚至还可以做一个自我编译,并自我运行的源代码。如下所示:
if 0
file=mktemp
gcc -o $file $0
$file
rm $file
exit
endif
include <stdlib.h>
include <stdio.h>
int main(int argc, char *argv[]) {
puts("Hello from C!");
return EXIT_SUCCESS;
}
运行:
$ sh test.sh.c
Hello from C!
$
当然,我并不建议你在真正的开发环境中这样使用,我只不过是在介绍一个比较有趣的用法,仅此而已!
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
我在商场里看了几家体验店,小米 vivoOPPO 三星,只有 vivo 的热点共享里不包含以太网网络共享这个功能,其他几家都有,无论是低端机还是旗舰机。 这个 USB 共享?…
自带的防火墙貌似只能单独禁止某一 exe 文件联网,能不能实现禁止一个文件夹下所有的程序联网,并且可以方便一键开启和一键关闭。 如果自带防火墙不能实现,有没有好用的第三方软件实…
上周接手了个项目,老板说大部分项目都不能工作,本来是以维护的价格来处理接手这一段代码的 没想到坑比我想的还多,这是其中展示通用的一部分,大部分出于保密性就不能透露了 开篇惊喜 …