linux之chdir函式解析
chdir.c
[[email protected] chdir]$ cat chdir.c
/*********************************************************************************
* Copyright: (C) 2013 fulinux<[email protected]>
* All rights reserved.
*
* Filename: chdir.c
* Description: This file
*
* Version: 1.0.0(08/06/2013~)
* Author: fulinux <
* ChangeLog: 1, Release initial version on "08/06/2013 03:35:13 PM"
*
********************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
int main(void)
{
if(chdir("/tmp") < 0)
{
perror("chdir");
exit(1);
}
printf("chdir to /tmp successded\n");
exit(0);
}
[
[[email protected] chdir]$ pwd
/home/lingyun/apue/chdir
[[email protected] chdir]$ ./a.out
chdir to /tmp successded
[[email protected] chdir]$ pwd
/home/lingyun/apue/chdir
[[email protected] chdir]$
執行./a.out程式的shell的當前工作目錄沒有變,其原因是建立了一個子程序並由該子程執行./a.out程式。記得有一次我把檔案系統整個都刪了,什麼命令都不能執行,但是cd命令可以,apue上說cd命令是直接包含在shell程式中的。
相關推薦
linux之chdir函式解析
[[email protected] chdir]$ ls chdir.c [[email protected] chdir]$ cat chdir.c /************************************************
linux之select函式解析
select()的機制中提供一fd_set的資料結構,實際上是一long型別的陣列, 每一個數組元素都能與一開啟的檔案控制代碼(不管是Socket控制代碼,還是其他 檔案或命名管道或裝置控制代碼)建立聯絡,建立聯絡的工作由程式設計師完成, 當呼叫select()時,由核心根
linux之select函式用法詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Linux之GCC命令 -- 解析GCC編譯的四個過程
在Linux下進行C語言程式設計,必然要採用GNU GCC來編譯C原始碼生成可執行程式。Gcc指令的一般格式為: Gcc [選項] 要編譯的檔案 [選項] [目標檔案]。其中,目標檔案可預設,Gcc預設生成可執行的檔名為:編譯檔案.out 看一下經典入門程式"Hello W
linux之getopt 函式
#include <stdio.h> #include <unistd.h> int main (int argc, char **argv) { int oc; /*選項字元 */ char ec;
Linux程式設計之ioremap函式的例項解析
void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 入口: phys_addr:要對映的起始的IO地址; size:要對映的空間的大小; flags:要對映
linux之dup和dup2函式解析
系統呼叫dup和dup2能夠複製檔案描述符。dup返回新的檔案檔案描述符(沒有用的檔案描述符最小的編號)。dup2可以讓使用者指定返回的檔案描述符的值,如果需要,則首先接近newfd的值,他通常用來重新開啟或者重定向一個檔案描述符。 在linux下,通過open開啟以檔案後
[轉載]Linux進程狀態解析之R、S、D、T、Z、X
AI 關心 避免 內核函數 正在執行 void 並不會 轉變 說明 Linux是一個多用戶,多任務的系統,可以同時運行多個用戶的多個程序,就必然會產生很多的進程,而每個進程會有不同的狀態。 Linux進程狀態:R (TASK_RUNNING),可執行狀態。只有在該狀態的進程
C# socket 程式設計之 accept() 函式返回值解析
accept() 函式會返回一個新的套接字,這個新的套接字在伺服器端與客戶端進行通訊。 伺服器端的繫結監聽是一個套接字,與客戶端通訊的是另一個套接字(accept函式返回的套接字,注意這裡不是返回客戶端的套接字,返回的套接字是新建立在伺服器上的,與客戶端收發訊息用的) 下面這段程式碼,是
linux C函式之stat函式
1.函式功能: 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中 2.函式原型 1)函式標頭檔案 #include <sys/stat.h> #include <unistd.h> 2)函式 int stat(const c
Nginx HTTP之請求行解析函式ngx_http_parse_request_line
Nginx的HTTP模組中使用ngx_http_parse_request_line函式來對讀取的請求行進行解析,HTTP請求行的格式不是很複雜,但是要注意HTTP 0.9與1.0、1.1之間的區別;另外,作為Nginx的第一個版本,裡面支援的請求方法也只有GET、POST和HEAD。 /* h
Linux系統中的DNS服務八之 動態域名解析(別稱:花生殼)!
DNS的動態域名解析: dns + dhcp 服務 ==花生殼 >>>>>>>>>動態域名解析!!! 實驗: 給dns-master配置dhcp服務:具體請看:https://mp.csdn.net
Linux系統中的DNS服務四 之 DNS雙向解析!
DNS的雙向解析: 前面我們實驗解釋過了 DNS的正向解析以及DNS的逆向解析; 雙向解析的目的: 如何讓一臺DNS伺服器解析不同網段IP地址的域名給對應IP網段的IP: 開始實驗: 對服務端: 對物理網絡卡eth0再設定一個IP地址:
Linux核心啟動第二階段之setup_arch函式分析
轉自:http://blog.chinaunix.net/uid-20672257-id-2383451.html 執行setup_arch()函式 回到start_kernel當中,569行,呼叫setup_arch函式,傳給他的引數是
linux C函式之access函式的用法【轉】
1.函式功能: 檢查呼叫程序是否可以對指定的檔案執行某種操作。 2.函式原型: 1)函式標頭檔案 #include <stdio.h> #include <unistd.h> 2)函式 int access(
Linux I/O複用之select函式詳解
置頂 2017年02月12日 20:50:08 難免有錯_ 閱讀數:7438更多 select函式的功能和呼叫順序 使用select函式時統一監視多個檔案描述符的: 1、 是否存在套接字接收資料? 2、 無需阻塞傳輸資料的套接字有哪些? 3、 哪些套接字發生了
Linux C高階程式設計——網路程式設計之包裹函式
Linux網路程式設計(六)——包裹函式 宗旨:技術的學習是有限的,分享的精神是無限的。 系統呼叫不能保證每次都成功,必須進行出
Linux C高階程式設計——檔案操作之庫函式
Linux C高階程式設計——檔案操作之庫函式 宗旨:技術的學習是有限的,分享的精神是無限的 ——為什麼要設計標準I/O庫? 直接使用API進行檔案訪問時,需要考慮許多細節問題 例如:read、write時,緩衝區的大小該如何確定,才能使效率最優 標準I/O庫封裝了諸多
【wav音訊解析】之wavread函式的C++實現
本文由三部分組成,第一部分背景介紹 —— 音訊型別及本文動機,第二部分類比matlab下wavread()函式的作用,第三部分則給出該函式的C++實現。 一 背景介紹 1.1 本文動機 1)所有wav音訊處理的基礎就是將wav格式的檔案解析出來,解析成陣列才
Linux-C網路程式設計之epoll函式
上文中說到如果從100的不同的地方取外賣,那麼epoll相當於一部手機,當外賣到達後,送貨員可以通知你,從而達到每去必得,少走很多路。 它是如何實現這些作用的呢? epoll的功能 epoll是select/poll的強化版,同是多路複用的函式,epoll