C語言和SH指令碼的雜交程式碼
在網上看到了一個把 C語言和bash雜並起來的例子,這個示子如下所示。在下面這個例子中,我們把指令碼用#if 0這個預編譯給起來,這樣就不會讓其編譯到C語言中了。
1 #if 0
2 echo "Hello from bash!"
3 exit
4 #endif
5 #include <stdlib.h>
6 #include <stdio.h>
7 int main(int argc, char* argv[]) {
8 puts("Hello from C!");
9 return EXIT_SUCCESS;
10 }
下面,讓我看看如果來使用這樣的程式:
1 $ sh test.sh.c
2 Hello from bash!
3 $ gcc test.sh.c -o test
4 $ ./test
5 Hello from C!
你甚至還可以做一個自我編譯,並自我執行的原始碼。如下所示:
1 #if 0
2 file=`mktemp`
3 gcc -o $file $0
4 $file
5 rm $file
6 exit
7 #endif
8 #include <stdlib.h>
9 #include <stdio.h>
10
11 int main(int argc, char *argv[]) {
12 puts("Hello from C!");
13 return EXIT_SUCCESS;
14 }
執行:
1 $ sh test.sh.c
2 Hello from C!
3
$
當然,我並不建議你在真正的開發環境中這樣使用,我只不過是在介紹一個比較有趣的用法,僅此而已!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2679794/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Web程式語言和指令碼語言的就業趨勢Web指令碼就業
- exp.sh 指令碼指令碼
- 編寫git指令碼.shGit指令碼
- 【程式語言】C/C++中如何使用Lua指令碼C++指令碼
- C++ 的指令碼語言:ChaiScriptC++指令碼AI
- 遠端分發sh指令碼指令碼
- sh指令碼執行報錯指令碼
- 【指令碼】UNIX平臺orainstRoot.sh指令碼作用指令碼AI
- 檢視當前系統程式指令碼ps.sh指令碼
- Perl指令碼 雜記指令碼
- Linux核心筆記003 - Linux核心程式碼裡面的C語言和組合語言Linux筆記C語言組合語言
- 聊聊C語言和ABAPC語言
- Oracle:GRID 下 root.sh 指令碼Oracle指令碼
- Linux定時執行.sh指令碼Linux指令碼
- sh指令碼判斷路徑是否存在指令碼
- 獲取完整的sqltext指令碼。get_fulltext.shSQL指令碼
- 批次刪除指定目錄下的sh指令碼指令碼
- 聊聊 C 語言和 ABAP 這兩門程式語言的關係
- Oracle RAC重新執行root.sh指令碼Oracle指令碼
- 獲取sql完整指令碼,get_fulltext.shSQL指令碼
- Sybase備份指令碼 btmbfe_sybase_backup.sh指令碼
- oracle使用監控指令碼_ck_tablespace.shOracle指令碼
- R12中間層及應用層指令碼(單獨開啟各服務指令碼)- adforms-c4wsctl.sh、adcmctl.sh指令碼ORM
- oracle_ray.sh 常用的oracle sql功能指令碼OracleSQL指令碼
- shell指令碼頭,#!/bin/sh與#!/bin/bash的區別.指令碼
- C與指令碼的混合程式設計 (轉)指令碼程式設計
- ruby指令碼,隨機生成複雜密碼指令碼隨機密碼
- R12中間層及應用層指令碼(單獨開啟各服務指令碼)- adopmnctl.sh,jtffmctl.sh,mwactl.sh指令碼
- C++ 能否成為你新的指令碼語言?C++指令碼
- C# 指令碼C#指令碼
- Java語言和C++語言的差異 (轉)JavaC++
- C語言簡單程式碼程式C語言
- R12中間層及應用層指令碼(AllInOne服務指令碼)-adstrtal.sh,adstpall.sh指令碼None
- 降低程式碼的圈複雜度——複雜程式碼的解決之道複雜度
- 指令碼新選擇——用C做指令碼指令碼
- 在 Linux 中執行.sh 指令碼 No such file or directoryLinux指令碼
- linux系統軟體啟動sh指令碼Linux指令碼
- awk指令碼語言程式設計指南指令碼程式設計