❶ linux應用程序 怎麼每60s發送運行某個函數一次
這要看該應用程序本身的實現了
如果在程序內部的話就可以使用一個計時器比如可以使用sleep函數在一個while循環里(死循環)每隔60s調用特定函數一次
當然也可以使用SIGALRM信號與alarm函數來定期調用某個函數
如果想要在外程序的」外「部進行程序內部函數定期調用執行的話可以在程序內部作信號捕獲
比如SIGUSR1等等,當程序捕獲到該信號會就調用一次某個函數或者直接進入死循環定期調用函數(為了避免多次創建死循環可設置一個變數用於記錄當前是否已經捕獲了信號)
如果是前一種,捕獲信號後只調用一次則我們可以通過kill命令向該程序發送信號(前提是該程序一直運行在系統後台里)
#!/bin/bash
whiletrue
do
kill-sSIGUSR1pid
done
如此便可以定期讓程序調用該程序內部的某一個函數
❷ 在linux中怎麼運行腳本函數
1、同一腳本文件中的函數:
#!/bin/sh
function func1()
{
echo $1
}
func1 "Hello world!"
2、其它腳本文件中的函數:
func.sh文件內容如下(其中定義了函數func1,需要1個參數):
#!/bin/sh
function func1()
{
echo $1
}
主程序腳本:
#!/bin/sh
. func.sh
func1 "Hello world!"
❸ 如何在linux調用windows庫函數
在linux調用windows庫函數:它之所以能夠在windows上運行,當然是因為編譯器把它們編譯成了windows操作系統能夠識別的機器碼組織形式。
應先用fdisk –l或 more /proc/partitions查看系統的硬碟和硬碟分區情況。
#mount -t ntfs /dev/sdc1 /mnt/usbhd1。
#mount -t vfat /dev/sdc5 /mnt/usbhd2。
註:對ntfs格式的磁碟分區應使用-t ntfs 參數,對fat32格式的磁碟分區應使用-t vfat參數。
find:
find / -name "*.txt" -print 用於查找所有的『 *.txt』文件在當前目錄及子目錄中。
find / -name "[A-Z]*" -print 用於當前目錄及子目錄中查找文件名以一個大寫字母開頭的文件。
find /etc -name "host*" -print 在/etc目錄中查找文件名以host開頭的文件。
find / -name "[a-z][a-z][0--9][0--9].txt" -print 在當前目錄查找文件名以兩個小寫字母開頭,跟著是兩個數字,最後是.txt的文件。
❹ php執行linux系統命令的常用函數使用說明
system函數
說明:執行外部程序並顯示輸出資料。
語法:string
system(string
command,
int
[return_var]);
返回值:
字元串
詳細介紹:
本函數就像是
C
語中的函數
system(),用來執行指令,並輸出結果。若是
return_var
參數存在,則執行
command
之後的狀態會填入
return_var
中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用
EscapeShellCmd()。若
PHP
以模塊式的執行,本函數會在每一行輸出後自動更新
Web
伺服器的輸出緩沖暫存區。若需要完整的返回字元串,且不想經過不必要的其它中間的輸出界面,可以使用
PassThru()。
實例代碼:
復制代碼
代碼如下:
<
?php
$last_line
=
system('ls',
$retval);
echo
'Last
line
of
the
output:
'
.
$last_line;
echo
'<hr
/>Return
value:
'
.
$retval;
?>
exec函數
說明:執行外部程序。
語法:string
exec(string
command,
string
[array],
int
[return_var]);
返回值:
字元串
詳細介紹:
本函數執行輸入
command
的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用
PassThru()
這個函數。
要是參數
array
存在,command
會將
array
加到參數中執行,若不欲
array
被處理,可以在執行
exec()
之前呼叫
unset()。若是
return_var
跟
array
二個參數都存在,則執行
command
之後的狀態會填入
return_var
中。
值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用
EscapeShellCmd()。
實例代碼:
復制代碼
代碼如下:
<
?php
echo
exec('whoami');
?>
popen函數
說明:打開文件。
語法:int
popen(string
command,
string
mode);
返回值:
整數
詳細介紹:
本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的
(只能讀或只能寫),而且一定要用
pclose()
關閉。在文件操作上可使用
fgets()、fgetss()
與
fputs()。若是開檔發生錯誤,返回
false
值。
實例代碼:
復制代碼
代碼如下:
<
?
$fp
=
popen("/bin/ls","r"
);
?>
PHP監控linux伺服器負載
在實際項目的應用中,我們由於各種條件的現實,利用PHP來實現伺服器負載監控將是一種更為靈活的方式。
由於Web
Server以及PHP的實現方式所限,我們在現實環境中很難利用PHP去調用一些Linux中需要root許可權才能執行的程序,對此,我從網上找到另外一種方式來繞開這個限制。首先先寫個c程序中轉調用系統命令,然後用PHP去執行此c程序。
c程序
首先寫個c文件,比如/usr/local/ismole/w.c
復制代碼
代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<systypes.h>
#include<unistd.h>
int
main()
{
uid_t
uid
,euid;
//note
獲得當前的uid
uid
=
getuid();
//note
獲得當前euid
euid
=
geteuid();
//note
交換這兩個id
if(setreuid(euid,
uid))
perror("setreuid");
//note
執行將要執行linux系統命令
system("/usr/bin/w");
return0;
}
編譯該文件gcc
-o
w
-Wall
w.c,這時會在當前目錄下生成程序w。改變此程序的屬主chmod
u+s
./w。
PHP執行
文件內容如下,放在web目錄下,訪問就會輸出當前的伺服器負載情況。
復制代碼
代碼如下:
<?php
/*
More
&
Original
PHP
Framwork
Copyright
(c)
2007
-
2008
IsMole
Inc.
$Id:
serverMonitor.php
408
2008-12-02
08:07:40Z
kimi
$
*/
//note
key的驗證過程
if($key
!=
$authkey)
{
//
exit('key
error);
}
$last_line
=
exec('/usr/local/ismole/w',
$retval);
$returnArray
=
explode("load
average:
",
$retval[0]);
$returnString
=
$returnArray[1];
echo
$returnString;
按照上面的實例,我們可以用PHP來做任何我們想執行的Linux系統命令,SVN更新,伺服器監控,備份,恢復,日常維護等等。
❺ linux線程函數運行結果疑問
你是把i的地址傳給線程,而不是把i的值傳給線程,當線程被創建好後,並沒有馬上被調度執行,而你main函數里的循環還在不停的運轉,所以i的值在不停的增長,等到被創建的線程得到CPU調度並且列印傳入地址(i的地址)內的值的時候,這個地址中的值已經++過若干次了,所以就出現你看到的情況了。
至於你的子進程什麼時候被調度,這完全是由操作系統根據調度演算法決定的(當前系統內其他進程的運行情況,優先順序等也會影響到它),所以你得到的是一個隨機的結果。
你可以在你的main函數pthread_create成功後加上列印的,再結合線程中的列印,你就能清晰的看到線程被創建後並沒有馬上得到運行的機會的。
❻ linux下的C函數怎樣才能在window下運行
可以在windows安裝cygwin,這就有了gcc編譯器。
cygwin是一個在windows平台上運行的unix模擬環境,是cygnus solutions公司開發的自由軟體。
它對於學習unix/linux操作環境,或者從linux到windows的應用程序移植,或者進行某些特殊的開發工作,尤其是使用gnu工具集在windows上進行嵌入式系統開發,非常有用。隨著嵌入式系統開發在國內日漸流行,越來越多的開發者對cygwin產生了興趣。
❼ 如何在linux中運行數據擬合函數
你可以使用「電子表格」類軟體來處理數據啊,就像excel一樣,
在linux下有Gnumeric、libreoffice(openoffice)、永中office等等。
輸入數據,插入圖表,挑選自己需要的圖表、曲線類型即可。
❽ Linux中如何執行兩個main函數
1.運行:本文使用一個簡單的C程序(simple.c)。代碼如下: int main() { return(0); } 2. 編譯:~#gcc -o simple simple.c 3. 查看可執行文件的基本信息~#objmp -f simple simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0藉助objmp這個工具,可以獲得可執行文件的一些關鍵信息。
❾ 在linux下怎麼運行main函數
1.運行:
本文使用一個簡單的C程序(simple.c)。代碼如下:
int main()
{
return(0);
}
2. 編譯:
~#gcc -o simple simple.c
3. 查看可執行文件的基本信息
~#objmp -f simple
simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0藉助objmp這個工具,可以獲得可執行文件的一些關鍵信息。