日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LinuxC程序如何調(diào)用Shell命令(linuxc調(diào)用shell)

概述

在Linux C程序中,如果想要調(diào)用Shell命令,可以使用system函數(shù)或popen函數(shù)。system函數(shù)是調(diào)用Shell命令來(lái)執(zhí)行某個(gè)操作,并將結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備。popen函數(shù)可以執(zhí)行Shell命令,并可以通過(guò)管道來(lái)在程序中傳遞數(shù)據(jù)。

system函數(shù)

系統(tǒng)函數(shù)可以使用man system手冊(cè)頁(yè)面,在終端輸入`man system`來(lái)查看。在Linux中,system函數(shù)的原型如下:

“`c

int system(const char *command);

“`

該函數(shù)可以執(zhí)行command字符串中指定的Shell命令,并將命令的輸出結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備。如果命令執(zhí)行成功,system函數(shù)返回0,否則返回非0值。

下面是一個(gè)使用system函數(shù)調(diào)用Shell命令的示例:

“`c

#include

#include

int mn()

{

int ret = system(“l(fā)s -la”);

if (ret == 0)

{

printf(“Command executed successfully!\n”);

}

else

{

printf(“Command fled to execute!\n”);

}

return 0;

}

“`

上述代碼中,我們調(diào)用了system函數(shù)來(lái)執(zhí)行了一個(gè)`ls -la`命令,該命令會(huì)將當(dāng)前目錄下的所有文件和文件夾以長(zhǎng)格式列出。如果system函數(shù)返回0,表示命令執(zhí)行成功,我們?cè)诔绦蛑休敵鲆粭l成功執(zhí)行的信息;反之,表示命令執(zhí)行失敗,我們?cè)诔绦蛑休敵鲆粭l錯(cuò)誤信息。

popen函數(shù)

popen函數(shù)與system函數(shù)類似,都可以調(diào)用Shell命令。不同的是,popen函數(shù)可以通過(guò)管道來(lái)在程序中傳遞數(shù)據(jù)。也就是說(shuō),我們可以通過(guò)popen函數(shù)來(lái)獲取Shell命令的輸出結(jié)果,并將結(jié)果傳遞給程序中的其他函數(shù)。

popen函數(shù)同樣可以使用man popen手冊(cè)頁(yè)面,在終端輸入`man popen`來(lái)查看。在Linux中,popen函數(shù)的原型如下:

“`c

FILE *popen(const char *command, const char *type);

“`

popen函數(shù)接受兩個(gè)參數(shù),之一個(gè)參數(shù)command是要執(zhí)行的Shell命令,第二個(gè)參數(shù)type是指定管道的類型,取值為”r”或”w”。如果type為”r”,則將建立一個(gè)只讀管道,可以從管道中讀取Shell命令執(zhí)行的輸出結(jié)果;如果type為”w”,則建立一個(gè)只寫管道,可以將數(shù)據(jù)寫入管道傳遞給Shell命令。

下面是一個(gè)使用popen函數(shù)調(diào)用Shell命令并傳遞數(shù)據(jù)的示例:

“`c

#include

#include

int mn()

{

FILE *fp;

char buff[1024];

fp = popen(“l(fā)s -la”, “r”);

if (fp == NULL)

{

printf(“Fled to open pipe!\n”);

exit(1);

}

while (fgets(buff, sizeof(buff), fp) != NULL)

{

printf(“%s”, buff);

}

pclose(fp);

return 0;

}

“`

在上述代碼中,我們使用popen函數(shù)來(lái)執(zhí)行一個(gè)`ls -la`命令,并建立一個(gè)只讀管道來(lái)讀取命令的輸出結(jié)果。在循環(huán)中,我們使用fgets函數(shù)從管道中讀取每一行輸出結(jié)果,并將其打印到標(biāo)準(zhǔn)輸出設(shè)備中。最后我們使用pclose函數(shù)關(guān)閉管道。

結(jié)論

相關(guān)問(wèn)題拓展閱讀:

  • 在linux 用shell腳本調(diào)用C語(yǔ)言的執(zhí)行文件,用到什么函數(shù),求大神幫分析一下
  • ASP.NET 如何調(diào)用linux下的Shell腳本程序?

在linux 用shell腳本調(diào)用C語(yǔ)言的執(zhí)行文件,用到什么函數(shù),求大神幫分析一下

c調(diào)用蔽含螞shell為system(cmd)

shell調(diào)用c執(zhí)老敗行文件和調(diào)用普通的命令宏埋一樣,如 ls cd pwd等命令都是c寫的執(zhí)行文件

直接用$符不能嗎?是不是權(quán)限不夠

up一下

exec

ASP.NET 如何調(diào)用linux下的Shell腳本程序?

Apache+Mysql+PHP(含GD,libpng,jpeg,zlib,freetype,freeTDS,awstats)安裝與配置

作者:swingcoder(at)msn(dot)com

日期:

一、前言

安裝的問(wèn)題很多人都之一次要面對(duì)的,既簡(jiǎn)單又麻煩。很多老鳥(niǎo)都對(duì)如何安裝的問(wèn)題不屑,說(shuō):?jiǎn)杹?lái)問(wèn)去都是安裝的問(wèn)題。

希望這的貼子對(duì)新手能有點(diǎn)幫助,老鳥(niǎo)的話,就不用看了,免得拍磚。謝謝~~

本文所有軟件均使談和緩用最新版(至發(fā)布日期),但是又有人說(shuō)了,什么版本不穩(wěn)定啦,這不好那不好啦。Cut!就此打住,我也不想為這些問(wèn)題糾纏不清了,此文僅僅是安裝。先讓大家用起來(lái),具體的優(yōu)化安全以后再說(shuō),應(yīng)了一句話“先讓一部分人先富起來(lái)!“。

雖然仍然是重復(fù)勞動(dòng),但至少是含模自己的經(jīng)驗(yàn),不想丟了,寫完后自己以后也可以看棚派看,順便整理整理。

二、目的

安裝Apahe與MySQL,將php安裝成支持gif,png,jpeg,freetype,mssql,mysql,需要更強(qiáng)大的圖形處理能力,可安裝ImageMagic??梢苑治龃罅髁烤W(wǎng)站日志(更大流量的網(wǎng)站推薦用Webalizer,不過(guò)界面簡(jiǎn)陋:-,)。

二、安裝環(huán)境描述

操作系統(tǒng):GNU Linux kernel 2.4.20

web服務(wù)器:Apache httpd-2.0.48 下載:

數(shù)據(jù)庫(kù)服務(wù)器:mysql-standard-4.0.17-pc-linux-i686 下載:

腳本程序語(yǔ)言:PHP Version 4.3.5RC5-dev 下載:

其它庫(kù)文件:

ZLIB:zlib-1.2.1.tar.gz 下載:

FreeType:freetype-2.1.5.tar.gz 下載:

PNG:libpng-1.2.5.tar.gz 下載:

JPEG:jpegsrc.v6b.tar.gz 下載:

GD:gd-2.0.18.tar.gz 下載: #2.0不支持GIF?好像限制又過(guò)期了

FreeTDS:freetds-stable.tgz 下載:

Cronolog:cronolog-1.6.2.tar.gz 下載:

Awstats:awstats-5.9.tgz 下載:

三、安裝步驟

1、安裝Apache

tar xzvf httpd-2.0.48.tar.gz

cd httpd-2.0.48

./configure –prefix=/usr/local/apache –enable-so

make

make install

echo “/usr/local/apache/bin/apachectl start&” >> /etc/rc.d/rc.local

#啟動(dòng)

/usr/local/apache/bin/apache start

2、安裝MySQL

tar xzvf mysql-standard-4.0.17-pc-linux-i686.tar.gz

#此處下載的的二進(jìn)制分發(fā)包,故沒(méi)有./configure步驟

mv mysql-standard-4.0.17-pc-linux-i686 /usr/local/mysql

cd /usr/local/mysql

#下步cp要看服務(wù)器硬件環(huán)境,可選all,medium,large,huge

cp support-files/my-medium.cnf /etc/my.cnf

echo “/usr/local/mysql/bin/safe_mysqld –user=mysql&” >> /etc/rc.d/rc.local

groupadd mysql

useradd -g mysql mysql

./scripts/mysql_install_db

chown -R mysql.mysql data

#啟動(dòng)

/usr/local/mysql/bin/safe_mysqld –user=mysql&

3、安裝PHP

A、先安裝支持包(注意安裝順序)

建立初始目錄:

#php目錄

mkdir /usr/local/php

mkdir /usr/local/php/modules

#freetype目錄

mkdir /usr/local/php/modules/freetype

#jpeg目錄

mkdir /usr/local/php/modules/jpeg6

mkdir /usr/local/php/modules/jpeg6/bin

mkdir /usr/local/php/modules/jpeg6/lib

mkdir /usr/local/php/modules/jpeg6/include

mkdir /usr/local/php/modules/jpeg6/man

mkdir /usr/local/php/modules/jpeg6/man/man1

#gd目錄

mkdir /usr/local/php/modules/gd

#freeTDS目錄

mkdir /usr/local/php/modules/freetds

A1、安裝zlib

tar xzvf zlib-1.2.1.tar.gz

cd zlib-1.2.1

#不要用–prefix自定義安裝目錄,影響gd的安裝

./configure

make

make install

A2、安裝freetype

tar xzvf freetype-2.1.5.tar.gz

cd freetype-2.1.5

./configure –prefix=/usr/local/php/modules/freetype

make

make install

A3、安裝libpng

tar xzvf libpng-1.2.5.tar.gz

#不要用–prefix自定義安裝目錄,影響gd的安裝

cd libpng-1.2.5

cp scripts/makefile.std makefile

make test

make install

A3、安裝jpeg

tar xzvf jpegsrc.v6b.tar.gz

./configure –prefix=/usr/local/php/modules/jpeg6 –enable-shared –enable-static

make

make install

A4、安裝GD

tar xzvf gd-2.0.18.tar.gz

./configure –prefix=/usr/local/php/modules/gd –with-jpeg=/usr/local/php/modules/jpeg6 –with-png –with-zlib –with-freetype=/usr/local/php/modules/freetype

make

make install

A5、安裝FreeTDS

tar zxvf freetds-stable.tgz

cd freetds-stable

./configure –prefix=/usr/local/php/modules/freetds

make

make install

B、安裝Cronolog

tar zxvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

make install

C、安裝PHP

tar xzvf php4-STABLE-latest.tar.tar

cd php4-STABLE-latest

./configure –prefix=/usr/local/php –with-jpeg=/usr/local/php/modules/jpeg6 –with-zlib –with-png –with-gd=/usr/local/php/modules/gd –with-freetype=/usr/local/php/modules/freetype –with-mssql=/usr/local/php/modules/freetds –enable-magic-quotes –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql

make

make install

四、一些特別的配置

1、配置Apache

修改httpd.conf文件:

#增加處理性能

MaxClient 250

StartServers 10

#設(shè)置PHP

LoadModule php4_module libexec/libphp4.so

#AddModule mod_php4.c

AddType application/x-httpd-php .php

#This directive configures what you return as the Server HTTP response Header

ServerTokens Minor

#Optionally add a line containing the server version and virtual host name to server-generated pages

ServerSignature Off

#設(shè)置日志存儲(chǔ)格式

CustomLog “|/usr/local/in/cronolog /usr/local/apache/logs/access_%y%m%d.log” combined

2、配置Awstat

#!!此程序需要perl的支持!!

tar xzvf awstats-5.9.tgz

mkdir /usr/local/apache/cgi-bin/webstat/

mkdir /usr/local/apache/weblog/

cd awstat/www/

cp icon/* /usr/local/apache/icons/

cp cgi-bin/ /usr/local/apache/cgi-bin/webstat/

cd /usr/local/apache/cgi-bin/webstat/

cp awstat.model.conf awstat.

#修改awstat.中下…?用默認(rèn)值:

vi awstat.

LogFile=”/usr/local/apache/logs/access_%YY%MM%DD.log”

SiteDomain=””

DirData=”/usr/local/apache/weblog/”

DirIcons=”/icons”

#修改awstats.pl為0777

chmod 0777 awstats.pl

#設(shè)置計(jì)劃任務(wù)

crontab -e

55 23 * * * (/usr/local/apache/cgi-bin/webstat/awstats.pl -update -config=>/dev/null)

3、配置MySQL

修改root用戶密碼

/usr/local/mysql/bin/mysqladmin -u root password ‘your-new-password’

刪除host為%和密碼為空的用戶

調(diào)整性能:

max_connections=250 #default is 100 #影響pconnect數(shù)量

table_cache=128 #default 64,調(diào)整值根據(jù)實(shí)際情況而定,一般如果Open_tables 達(dá)到table_cache值,且Opened_tables仍在快速增長(zhǎng),要增大該值。

key_buffer_size= #根據(jù)實(shí)際情況而定,一般Key_reads : Key_read_requests小于1:1000

4、配置PHP

默認(rèn)安裝的PEAR有,如果用不上的話可以刪除:

DB – installed: 1.6.0

HTTP – installed: 1.2.2

Mail – installed: 1.1.2

Net_TP – installed: 1.2.3

Net_Socket – installed: 1.0.1

XML_Parser – installed: 1.0.1

XML_RPC – installed: 1.0.4

更多信息請(qǐng)參考:

五、常見(jiàn)問(wèn)題

1、安裝PHP

a、checking lex output file root… ./configure: line 2425: lex: command not found

configure: error: cannot find output from lex; giving up

缺少flex-2.5.4a-29.i386.rpm,從linux 9.0光盤中找到flex-2.5.4a-29.i386.rpm,安裝,重新編譯php,ok.

b、ext/gd/gd.lo(.text+0x875): undefined reference to `gdFreeFontCache’

*** Error code 1

php.net官方人士說(shuō)是安裝了不同版本的GD或者推薦安裝低版本的php,但我是安裝了高于php-4.3.4.tar.gz后解決了此問(wèn)題。

參考:

2、安裝jpeg

一定要選擇./configure –enable-shared –enables-static –prefix=/usr/local方式安裝,否則不能make install !!!

若沒(méi)有裝libtool-1.4.3-5.i386.rpm,不能創(chuàng)建共享libjpeg庫(kù),即不是能–enable-shared指令編譯。

裝libtool之前要裝m4-1.4.1-13.i386.rpm,automake,autoconf及

若您下載的包為zip格式j(luò)pegsr6.zip時(shí),./configure 時(shí)出現(xiàn): bad interpreter:,原因是dos換行跟unix換行符不同造成的,在editplus在轉(zhuǎn)換格式后,jpeg-6a安裝成功

3、安裝libpng

安裝之前要先安裝zlib, 且不有自定義目錄,否則裝gd時(shí)找不到庫(kù)文件。

4、安裝MySQL

此文中因?yàn)榘惭b的是二進(jìn)制分發(fā)包,幫沒(méi)有configure,如果是源碼包,依照如下格式安裝。

shell> groupadd mysql

shell> useradd -g mysql mysql

shell> tar xzvf mysql-VERSION.tar.gz

shell> cd mysql-VERSION

shell> ./configure –prefix=/usr/local/mysql

shell> make

shell> make install

shell> scripts/mysql_install_db

shell> chown -R root /usr/local/mysql

shell> chown -R mysql /usr/local/mysql/data

shell> chgrp -R mysql /usr/local/mysql

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> /usr/local/mysql/bin/mysqld_safe –user=mysql &

五、參考資源

1、apache

2、mysql

3、php

4、GD

5、FreeTDS

6、Cronolog

7、Awstats

8、Webalizer

六、總結(jié)

上述僅僅是簡(jiǎn)單的安裝跟一些簡(jiǎn)單的配置,肯定存在不少漏洞,希望大家多多留心,任何程序和配置,最關(guān)鍵的在決定因素往往在于--“配置者”本身。希望對(duì)有需要的人有一定的幫助。

如果你不想裝apache可以略過(guò)apache安裝那部分

關(guān)于linux c 調(diào)用shell的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


當(dāng)前文章:LinuxC程序如何調(diào)用Shell命令(linuxc調(diào)用shell)
分享路徑:http://www.5511xx.com/article/cdsdpsj.html