1. 程式人生 > >[shell]system和execlp簡單示例

[shell]system和execlp簡單示例

div print logs $1 script col echo null ram

shell腳本:hello.sh

#!/bin/bash
echo "i am in shell script"
echo "param 1 is $1"
echo "param 2 is $2"
variable=$[ $1 + $2 ]
echo "sum is $variable"

system接口:system.c

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

void main(void)
{
    printf("i am in c code!\r\n"
    system(
"/bin/bash ./hello.sh 10 20); }

輸出

i am in c code!
i am in shell script!
param 1 is 10
param 2 is 20
sum is 30

execlp接口:execlp.c

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

void main(void)
{
    int ret = 0;
    int param1 = 10;
    int param2 = 20
; printf("i am in c code!\r\n"); if(fork() == 0) { printf("execlp...........\r\n"); ret = execlp("/bin/bash", "bash", "hello.sh", &param1, &param2, NULL); if(ret < 0) { printf("execlp failed!\r\n"); return; } } }

這其中execlp的參數不管怎麽填都得不到正確運行的結果

[shell]system和execlp簡單示例