當前位置:首頁 » 操作系統 » linux函數執行

linux函數執行

發布時間: 2022-08-31 07:09:26

1. 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這個工具,可以獲得可執行文件的一些關鍵信息。

2. 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更新,伺服器監控,備份,恢復,日常維護等等。

3. linux能夠通過指令執行.o文件中的函數嗎

有個折中的方法,將調用庫函數的代碼寫到腳本中,用shell生成文件,編譯、連接、執行,獲取返回結果。

4. linux 後台程序中printf占資源嗎 printf函數怎麼執行的

linux 後台程序中printf占資源,printf函數在c語言中產生格式化輸出的函數(定義在 stdio.h 中),其向終端(顯示器、控制台等)輸出字元。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

5. 在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這個工具,可以獲得可執行文件的一些關鍵信息。

6. 在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!"

7. linux應用程序 怎麼每60s發送運行某個函數一次

這要看該應用程序本身的實現了

如果在程序內部的話就可以使用一個計時器比如可以使用sleep函數在一個while循環里(死循環)每隔60s調用特定函數一次

當然也可以使用SIGALRM信號與alarm函數來定期調用某個函數

如果想要在外程序的」外「部進行程序內部函數定期調用執行的話可以在程序內部作信號捕獲

比如SIGUSR1等等,當程序捕獲到該信號會就調用一次某個函數或者直接進入死循環定期調用函數(為了避免多次創建死循環可設置一個變數用於記錄當前是否已經捕獲了信號)

如果是前一種,捕獲信號後只調用一次則我們可以通過kill命令向該程序發送信號(前提是該程序一直運行在系統後台里)

#!/bin/bash

whiletrue
do
kill-sSIGUSR1pid
done

如此便可以定期讓程序調用該程序內部的某一個函數

熱點內容
房車旅遊自媒體有腳本嗎 發布:2025-05-14 11:18:18 瀏覽:124
android輸入法鍵盤 發布:2025-05-14 11:15:48 瀏覽:656
谷歌商店安卓手機在哪裡 發布:2025-05-14 11:13:46 瀏覽:534
編程貓銷售女 發布:2025-05-14 11:13:36 瀏覽:334
安卓卡無翼怎麼出小黑屋 發布:2025-05-14 11:13:00 瀏覽:580
買商用筆記本電腦主要看哪些配置 發布:2025-05-14 11:12:15 瀏覽:949
如何在伺服器里做一把神器 發布:2025-05-14 11:11:19 瀏覽:710
cl編譯選項 發布:2025-05-14 11:09:25 瀏覽:620
自製演算法表 發布:2025-05-14 11:05:18 瀏覽:357
android獲取手機聯系人 發布:2025-05-14 10:59:30 瀏覽:141