linux:一个gcc的例子

来源:互联网 发布:linux云计算工程师 编辑:程序博客网 时间:2024/05/22 12:38

在linux下,估计你经常使用pwd这个命令,这个命令就是打印当前的工作路径,即print working directroy, 今天我们也来c语言实现这个命令。
要实现这个功能,需要用到下面的一个系统调用:

#include <unistd.h>
 
char *getcwd(char *buf, size_t size);
该系统调用返回当前的工作目录的绝对路径,绝对路径的值保留在size大小的buf中,如果这个缓冲区太小,则返回NULL,并且errno被设置为ERANGE, 如果buf等于NULL,则行为是未定义的。如果函数调用成功,返回值是buf, 如果调用失败,则返回NULL,失败原因可以查看errno。

另外,还要用到一个函数:

#include <string.h>
 
char *strerror(int errnum);
该函数吧错误代码errnum转换为错误描述字符串并返回。

程序很简单,完整代码如下:

下载: pwd.c
1./* pwd.c */
2.#include <unistd.h>
3.#include <stdio.h>
4.#include <string.h>
5.#include <errno.h>
6. 
7.#define BUF_SIZ    2048
8.int main()
9.{
10.    char buf[BUF_SIZ];   
11.   
12.    if ( getcwd(buf, BUF_SIZ) )
13.        printf("%s/n", buf);
14.    else
15.        fprintf(stderr, "error occured : %s", strerror(errno));
16.    exit(0);
17.}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaolang85/archive/2010/02/25/5326484.aspx

原创粉丝点击