c調用腳本
樓主不要混淆腳本的概念····如果是腳本的話
就是命令行指令,或者腳本語言保存的代碼。腳本一般為解釋性語言,即不需要編譯鏈接,而直接逐行執行代碼的語言。C語言不是腳本語言。
電話號碼嘛··隨機生成,這個不錯,有點復雜的說。我是說隨機數像電話號碼的情況。比較復雜。
你需要一個hashlist庫。
一個生成用戶名的方法,一個生成電話號碼的方法。
和一個記錄顯示的方法。
有了這些很簡單了。
初始化哈希表
//如果同時生成記錄和讀取記錄的話要用到多線程了
//可以先讀取:
打開文件:
loop:
讀取一條記錄
store as key & value in hashlist
loopend
生成記錄 保存
寫入文件
② 如何在C語言中調用腳本
用system
比如 腳本名字是a.sh的話
那麼就是
system("./a.sh");
③ c語言中c文件能不能調用shell腳本
解決方法如下:
int iRetCode;
char sStr[100];
sprintf(sStr,"home/test/upload/unload.sh");
iRetCode=system(sStr);
if(iRetCode<0)
{
printf("shell error!");
}
④ 在c\c++程序里怎麼執行shell腳本命令
在C/C++源碼中執行shell命令,最基本的就是system()C庫函數,其次可以使用系統提供的api函數,比如windows上的createprocess shellexecuteex等函數,在linux上可以使用exec()等等.
下面是我在windows上的弄的一個測試版本,使用了線程,我感覺用nc來測試,不如直接netstat -an | findstr /I "udp" | findstr "22" ,因為22埠太其特了,很容易抓出來.另外nc判斷埠常規的作法就是nc -vv ip port 看提示信息就好了.
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include <windows.h>
#include <process.h>
UINT __stdcall ThreadFunc(LPVOID lpParam) {
//將hacker字元串做為nc提交的數據
int ret = system("echo hacker | nc.exe -u 127.1 22");
//ret==0說明沒有開啟22埠
if (ret == 0 ) printf("nc: Write error: Connection refused.\n");
return 0;
}
int main()
{
HANDLE hThread = (HANDLE)_beginthreadex(0, 0, ThreadFunc, 0, 0, 0);
//等待3秒鍾,說明22埠可用
WaitForSingleObject(hThread, 3000);
//結束測試線程
TerminateThread(hThread, 0);
//重新開啟NC連接22埠
system("nc.exe -vv -u 127.1 22");
return 0;
}
歡迎光臨0x30貼吧,一個高質量的計算機技術交流平台.
⑤ C語言不屬於腳本語言可是能不能用來寫腳本呢
不行的,腳本是一種文本,可以用記事本編寫,是十進制,不需要編譯器編譯成計算機能識別的二進制。而c語言用編譯器來編寫,將十進制轉換為二進制。況且腳本語法和c語言不同,但腳本和vb有關聯,如果你要學腳本,先去理解下vb語法
⑥ 如何在jstl得c:set標簽中調用腳本方法
1.jstl標簽,不可能調用java類方法的 2.一種方法是在jsp頁面中進行調用;另一種是在action或者servlet中調用,然後將值存到request或者session作用域中,最後在頁面通過jstl標簽取
⑦ 如何在C語言中調用shell命令
在C語言中調用shell命令的方法實現。
C程序調用shell腳本共有兩種方法 :system()、popen(),分別如下:
system()
不用自己去創建進程,系統已經封裝了這一步,直接加入自己的命令即可
popen() 也可以實現執行的命令,比system
開銷小
以下分別說明:
1)system(shell命令或shell腳本路徑);
system()
會調用fork()產生 子歷程,由子歷程來調用/bin/sh-c string來履行 參數string字元串所代表的命令,此命令履行
完後隨即返回原調用的歷程。在調用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被漠視 。
返
回值:如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(NULL),則返回非零值。 如果
system()調用成功 則最後會返回履行 shell命令後的返回值,但是此返回值也有可能為system()調用/bin/sh失敗所返回的127,因
此最好能再反省 errno 來確認履行 成功 。
system命令以其簡略
高效的作用得到很很廣泛 的利用 ,下面是一個例子
例:在/tmp/testDir/目錄下有shell腳本tsh.sh,內容為
#!/bin/sh
wget $1
echo "Done!"
2)popen(char
*command,char *type)
popen()
會調用fork()產生 子歷程,然後從子歷程中調用/bin/sh -c來履行 參數command的指令。參數type可應用
「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立 管道連到子歷程的標准 輸出設備 或標准 輸入設備
,然後返回一個文件指針。隨後歷程便可利用 此文件指針來讀取子歷程的輸出設備 或是寫入到子歷程的標准 輸入設備 中。此外,所有應用 文
件指針(FILE*)操作的函數也都可以應用 ,除了fclose()以外。
返回值:若成功
則返迴文件指針,否則返回NULL,差錯 原因存於errno中。注意:在編寫具SUID/SGID許可權的程序時請盡量避免應用
popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
例:C程序popentest.c內容如下:
#include<stdio.h>
main
{
FILE * fp;
charbuffer[80];
fp=popen(「~/myprogram/test.sh」,」r」);
fgets(buffer,sizeof(buffer),fp);
printf(「%s」,buffer);
pclose(fp);
}
⑧ 關於C語言和 腳本問題
我覺得,你首先應該區分下腳本的概念,一般來說,腳本簡單地說就是一條條的文字命令,這些文字命令是可以看到的(如可以用記事本打開查看、編輯)。腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。腳本通常可以由應用程序臨時調用並執行。
C語言可以做調用腳本的程序,比如,據我的估計,像按鍵精靈之類可能就是用C/C++寫的(即使不是C也完全可以寫這種功能)。但一般來說,C語言大多數情況下還是編譯生成可執行程序(.exe),而不是腳本(按某種語法編寫的文本序列)。
如果你想用C語言編寫腳本,建議可以參考比較成熟的軟體,如VBScript 、 AutoIt、按鍵精靈等的做法。
據我的理解,直接用C語言編寫生成的應該是程序,而不是腳本。
⑨ c語言如何調用需傳入參數的shell腳本
#include<stdio.h>
intmain(intargc,char**argv)
{
inti;
for(i=0;i<argc;i++)
printf("%s ",argv[i]);
return0;
}
比方這個程序叫 main.c 吧,先編譯成 main.exe
gcc main.c -o main.exe
然後用命令運行
main.exe aefae 2423 asdae
程序輸出:
main.exe
aefae
2423
asdae
argv 是通過命令行傳送給程序的參數的字元串指針數組,argc 是參數的個數
⑩ 怎麼在c語言程序里調用shell腳本文件
system(「這里是你要執行的腳本文件的絕對位置或者相對位置」);