Unix环境下C编程讲义

Unix环境下C编程讲义

ID:41037339

大小:28.50 KB

页数:4页

时间:2019-08-14

Unix环境下C编程讲义_第1页
Unix环境下C编程讲义_第2页
Unix环境下C编程讲义_第3页
Unix环境下C编程讲义_第4页
资源描述:

《Unix环境下C编程讲义》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Unix环境下C编程讲义(一)UNIX基础知识对Unix下的一些基本概念和名词进行介绍,帮助大家掌握unix的开发环境,详细的请阅读Unix高级编程第一章。一.用户管理在telnet和ssh登录进入系统的时候,我们输入用户名和密码,进入系统。这些用户数据存放在/etc/passwd文件中。user001:x:101:1::/export/home/user001:/usr/bin/bash登录名uidgidhome目录shell登录名:就是登录的时候的用户名。Uid:用户id,在unix下每个用户都有一个id唯一标识,用于权限管理。Gid:组id,每一个用户有一个

2、主要的组id,还可以有多个其他组id,这个在/etc/groups文件管理。Home目录:用户的主目录。shell:登录进入之后,所使用的交互式的命令解释器就是shell。Unix大本营缺省使用bash,另外还有Bourneshell(/bin/sh),Cshell(/bin/csh),Kornshell(/bin/ksh)二.文件和目录1.Unix文件系统是目录和文件的一种分层次的安排,目录的起点称为根(root),其名字是一个字符/。一个目录在unix下,实质是一个属性是目录的文件,包含很多目录项。每一个文件属性包括:文件类型,文件长度,文件属主,文件的许可权

3、,文件的最后修改时间等。C程序中,使用stat或者fstat函数返回一个包含所有文件属性的信息结构,使用readdir,opendir函数读取每个目录下的目录项。2.工作目录。每一个进程都有当前的工作目录,在程序中可以用chdir函数修改。工作目录直接影响文件函数的路径。三.输入和输出1.文件描述符一个非负整数,用于标识进程正在打开的文件。1.标准输入输出和标准出错unix下,每一个进程运行的时候,shell都会给进程打开3个基本的文件描述符,0是标准输入,1是标准输出,2是标准出错。当重定向的时候就会指向被定向到的文件。2.文件读写分为2大类,一类是直接通过文件

4、描述符读写的,open,close,read,write,lseek另一类是使用FILE结构有缓冲的fopen,fclose,fread,fwrite,fseek,fgets,getc,fscanf使用fileno函数可以把FILE结构转成文件描述符。一.程序和进程每一个可执行文件称为程序。程序通过fork,exec方式执行,每一个执行的实例就是进程。1.进程ID每一个进程有一个进程id,程序中通过getpid可以获得当前proccessid。2.进程属主id每一个进程有uid,euid,saveuid三个用户id,分别表示进程所运行的用户id和有效用户id,保存

5、的用户id。对于组id有同样的3个。二.出错处理一般情况下,函数出错的错误号保存在整型变量errno中。Unix下可以通过perror和strerror帮组打印出错信息。三.信号不同于windows,Unix下使用信号通知进程发生了某种事件。比如在程序运行的时候的时候按Ctrl+C,其实是shell给这个进程发送了一个SIGINT信号。而在进程这个信号的处理程序中退出了。C程序中使用signal,sigaction系列函数挂接信号处理函数。四.时间unix下一般使用time_t类型表示时间,这个代表自1970年1月1日00:00:00以来经过的秒数。使用time函

6、数可以获得当前时间,使用ctime,localtime,gmtime可以把time_t类型和structtm类型进行转化,获得time_t对应的实际时间。习题:1.编译运行下面的hellword程序。提示:使用gcc编译,用-o指定输出程序名,执行的时候记得使用./程序名,因为缺省的PATH路径中不包含当前路径。/*hellword.c------------------------------------------------------------------------------*/intmain(intargc,char**argv){printf("

7、hellword!");}/*------------------------------------------------------------------------------*/2.写一个程序列出根目录/目录下的文件,类似以下输出。提示:使用opendir和readdir,两个函数需要include的头文件,可以通过manopendir查看帮助,在帮助的开始有说明。$./lsroot...lost+foundusrvarexportetcbindevdeviceskernellibmntoptprocsbintmpplatformnethomexf

8、nvol3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。