函數exec

exec函數族

1. 執行指定目錄下的程序

#include <unistd.h>
int execl(const char *path, const char *arg, ...);返回值:若出錯,返回-1;若成功,不返回

分析:

  • path: 要執行的程序的絕對路徑
  • 變參arg: 要執行的程序的需要的參數
  • 第一arg:占位
  • 后邊的arg: 命令的參數
  • 參數寫完之后: NULL
  • 一般執行自己寫的程序

?

2. execv函數原型:
?

#include <unistd.h>
int execv(const char *path, char *const argv[]);返回值:若出錯,返回-1;若成功,不返回

參數:

  • path = /bin/ps
  • char* args[] = {"ps", "aux", NULL};
  • execv("/bin/ps", args);

?

3.?執行PATH環境變量能夠搜索到的程序

#include <unistd.h>
int execlp(const char *file, const char *arg, ...);返回值:若出錯,返回-1;若成功,不返回

分析:

  • file: 執行的命令的名字
  • 第一arg:占位
  • 后邊的arg: 命令的參數
  • 參數寫完之后: NULL
  • 執行系統自帶的程序
  • execlp執行自定義的程序: file參數絕對路徑

?

4. execvp函數原型:

#include <unistd.h>
int execvp(const char *file, char *const argv[]);返回值:若出錯,返回-1;若成功,不返回

?

5.?執行指定路徑, 指定環境變量下的程序

#include <unistd.h>
int execle(const char *path, const char *arg, ..., char *const envp[]);返回值:若出錯,返回-1;若成功,不返回

分析:

  • path: 執行的程序的絕對路徑??/home/itcast/a.out
  • arg: 執行的的程序的參數
  • envp: 用戶自己指定的搜索目錄, 替代PATH
  • char* env[] = {"/home/itcast", "/bin", NULL};

?

6. execve函數原型:

#include <unistd.h>
int execve(const char *path, char *const argv[], char *const envp[]);返回值:若出錯,返回-1;若成功,不返回

?

二、程序清單:

1. 測試代碼:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>int main()
{for(int i = 0; i < 8; ++i){printf(" parent i = %d\n", i);}pid_t pid = fork();if(pid == 0) {execlp("ps", "ps", "aux", NULL);perror("execlp");exit(1);}for(int i = 0; i < 3; ++i) {printf("----------- i = %d\n", i);}return 0;
}

輸出結果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385583.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385583.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385583.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【面試必備】java寫spark好不好

并發編程三大特性 原子性 一個操作或者多次操作&#xff0c;要么所有的操作全部都得到執行并且不會受到任何因素的干擾而中斷&#xff0c;要么所有的操作都執行&#xff0c;要么都不執行。 對于基本數據類型的訪問&#xff0c;讀寫都是原子性的【long和double可能例外】。 …

【面試必備】java面試題視頻講解

二、我們先來看看這份筆記到底有什么 1、先把kubernetes跑起來&#xff08;先跑起來創建kubernetes集群部署應用訪問應用Scale應用滾動更新&#xff09; 2、重要概念 3、部署kubernetes Cluster&#xff08;安裝docker安裝 kubelet.kubeadm和 kubectll用kubeadm 創建cluster&a…

【面試總結】java測試工程師培訓

阿里P8級架構師核心理論落地篇 再造淘寶&#xff0c;貫穿全系&#xff0c;阿里團隊代碼落地&#xff0c;詳細每個版本迭代&#xff0c;拒絕2-3個月PPT架構師再造淘寶之咚寶-技術支撐-完整搭建DevOps再造淘寶之咚寶-統一規則-代碼規范落地解析再造淘寶之咚寶搭建基礎服務再造淘…

進程組的應用

一、實驗1 題目&#xff1a;利用進程扇完成一個小實驗。該進程扇有 1 個父進程和 3 個子進程&#xff0c;我們希望達到圖 1 中的效果&#xff0c;即將進程 0 (父進程)和進程 1 設置成一組&#xff0c;假設為組 1&#xff0c;將進程 2 和 進程 3 設置成另一個組&#xff0c;假設…

【原理+實戰+視頻+源碼】docker映射端口教程

阿里巴巴Java崗面試題分享 1.HashMap 的內部結構&#xff1f;內部原理&#xff1f;和 HashTable 的區別&#xff0c;假如發?了 hash 碰撞&#xff0c;如何設計能讓遍歷效率?&#xff1f; 2.講一講講講 ConcurrentHashMap吧。 3.講一下JVM虛擬機內存結構&#xff0c;以及它…

前臺進程組、后臺進程組

一、前臺進程組、后臺進程組 cat | cat & cat | cat | cat 輸出結果&#xff1a; 二、主要函數應用 1. tcgetpgrp函數原型&#xff1a; #include <unistd.h> pid_t tcgetpgrp(int fd);返回值&#xff1a;若成功&#xff0c;返回前臺進程組ID, 若出錯&#xff0c;…

【原理+實戰+視頻+源碼】docker權限參數

一面&#xff1a; 個人介紹加項目介紹20分鐘 微服務架構是什么&#xff0c;它的優缺點&#xff1f; ACID CAP BASE理論 分布式一致性協議&#xff0c;二段、三段、TCC&#xff0c;優缺點 RPC過程 服務注冊中心宕機了怎么辦&#xff1f; 微服務還有其他什么組件 分布式架…

【孤兒進程】孤兒進程組、守護進程

一、孤兒進程組 1. 孤兒進程的定義&#xff1a; 定義1&#xff1a;該進程組的每個成員的父進程要么是該組的成員&#xff0c;要么在其它會話中。 定義2&#xff1a;一個進程不是孤兒進程組的條件是——該組有一個進程&#xff0c;其父進程在屬于同一會話的另一個組中。 只要能…

【吐血整理】用java編寫一個登陸界面

結構化數據、非結構化數據與半結構化數據 文章的開始&#xff0c;聊一下結構化數據、非結構化數據與半結構化數據&#xff0c;因為數據特點的不同&#xff0c;將在技術上直接影響存儲引擎的選型。 首先是結構化數據&#xff0c;根據定義結構化數據指的是由二維表結構來邏輯表…

線程概念

什么是線程 LWP&#xff1a;light weight process 輕量級的進程&#xff0c;本質仍是進程(在Linux環境下&#xff09; 進程&#xff1a;獨立地址空間&#xff0c;擁有PCB 線程&#xff1a;也有PCB&#xff0c;但沒有獨立的地址空間(共享) 區別&#xff1a;在于是否有共享地址…

【大牛瘋狂教學】cdhkafka打開的文件描述符臨界閾值

基本知識 1.學會分析源碼 程序員每天都和代碼打交道。經過數年的基礎教育和職業培訓&#xff0c;大部分程序員都會「寫」代碼&#xff0c;或者至少會抄代碼和改代碼。但是&#xff0c;會讀代碼的并不在多數&#xff0c;會讀代碼又真正讀懂一些大項目的源碼的&#xff0c;少之…

線程清理函數

一、線程清理函數 #include <pthread.h> void ptread_clean_push(void (*rtn) (void *), void *arg); 注冊清理函數&#xff0c;押棧 void ptread_clean_pop(int excute); 清理函數&#xff0c;出棧 分析&#xff1a;這兩個函數是成對出現的…

【大牛瘋狂教學】mysqlinnodb和myisam

02 JVM 線程JVM內存區域JVM運行時內存垃圾回收與算法JAVA四種引用類型GC分代收集算法 VS 分區收集算法GC垃圾收集器JAVA IO/NIOJVM類加載器 03 JAVA集合 接口繼承關系和實現LISTSETMAP 04 JAVA多線程并發 JAVA并發知識庫JAVA線程實現/創建方式4種線程池線程生命周期&#xf…

【大牛瘋狂教學】深入拆解java虛擬機百度云

Java基礎核心筆記總結 由于篇幅限制&#xff0c;我就只以截圖展示目錄內容以及部分筆記內容&#xff0c;獲取完整版王者級核心寶典只需要點擊點贊關注即可獲取領取方式&#xff01; 在這個部分我們總結了Java的基礎知識&#xff0c;涵蓋了&#xff1a;概述、開發環境、開發環境…

不可靠的信號、可靠信號

一、不可靠信號 lnux信號機制基本上是從UNIX系統中繼承過來的。早期UNIX系統中的信號機制比較簡單和原始&#xff0c;后來在實踐中暴露一些問題&#xff0c;它的主要問題是&#xff1a; 1. 進程每次處理信號后&#xff0c;就將對信號的響應設置為默認動作&#xff0c;在某些情…

【大牛系列教學】docker.service配置文件詳情

01 阿里中間件&#xff08;四面&#xff0c;Java崗&#xff09; 1.1 Java中間件一面 技術一面考察范圍 重點問了Java線程鎖&#xff1a;synchronized 和ReentrantLock相關的底層實現 線程池的底層實現以及常見的參數 數據結構基本都問了一遍&#xff1a;鏈表、隊列等 Java內存…

可重入函數和不可重入函數

一、可重入函數 為了增強程序的穩定性&#xff0c;在信號處理函數中應使用可重入函數。 所謂可重入函數是指一個可以被多個任何調用的過程&#xff0c;任務在調用時不必擔心數據是否出錯。因為進程在收到信號后&#xff0c;就將跳轉到信號處理函數去接著執行&#xff0c;如果…

【大牛系列教學】java面試常考的編程題

1. 面試官&#xff1a;工作中使用過Zookeeper嘛&#xff1f;你知道它是什么&#xff0c;有什么用途呢&#xff1f; 小菜雞的我&#xff1a; 有使用過的&#xff0c;使用ZooKeeper作為dubbo的注冊中心&#xff0c;使用ZooKeeper實現分布式鎖。ZooKeeper&#xff0c;它是一個開…

中斷的系統調用

系統調用可分為兩類&#xff1a;慢速系統調用和其他系統調用 慢速系統調用&#xff1a;可能會使進程永遠阻塞的一類&#xff0c;如果在阻塞期間收到一個信號&#xff0c;該系統調用就被中斷&#xff0c;不再繼續執行(早期)&#xff1b;也可以設定系統調用是否重啟。如&#xf…

【好文推薦】java模板引擎性能

01. 基礎架構&#xff1a;一條SQL查詢語句是如何執行的&#xff1f; MySQL 的邏輯架構圖 02. 日志系統&#xff1a;一條SQL更新語句是如何執行的&#xff1f; 之前你可能經常聽DBA同事說&#xff0c;MySQL可以恢復到半個月內任意一秒的狀態&#xff0c;驚嘆的同時&#xff0c;…