重庆工商大学unix编程刘波期末考试题全部是必考题

重庆工商大学unix编程刘波期末考试题全部是必考题

who的实现***********************************************

#include <stdio.h><sys/types.h><utmp.h><fcntl.h><time.h>

void show_info(struct utmp *);void showtime(time_t); int main(){struct utmp *utbufp,*utmp_next();if(utmp_open(UTMP_FILE)== -1){perror(UTMP_FILE);exit(1);} while((utbufp=utmp_next())!=((struct utmp *)NULL)) show_info(utbufp ); utmp_close();return 0;} void show_info( struct utmp *utbufp ){if(utbufp->ut_type!=USER_PROCESS) return;

printf("%-8.8s", utbufp->ut_name);printf("%-8.8s", utbufp->ut_line);showtime( utbufp->ut_time );#ifdef SHOWHOST

if( utbufp->ut_host[0] != '\0') printf("(%s)",utbufp->ut_host);#endif printf("\n");} void showtime(time_t timeval){char *ctime();char *cp;cp=ctime(&timeval);printf("%12.12s",cp+4);}

cp的实现***********************************************

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

#define BUFFERSIZE 4096 #define COPYMODE 0644 void oops(char *, char *);

int in_fd, out_fd, n_chars; char buf[BUFFERSIZE];

if ( argc != 3 ){ fprintf( stderr, "usage: %s source destination\n", *argv); exit(1); }

if ( (in_fd=open(argv[1], O_RDONLY)) == -1 ){ oops("Cannot open ", argv[1]); }

if ( (out_fd=creat( argv[2], COPYMODE)) == -1 ){ oops( "Cannot creat", argv[2]); }

while ( (n_chars = read(in_fd , buf, BUFFERSIZE)) > 0 ){

if ( write( out_fd, buf, n_chars ) != n_chars ){ oops("Write error to ", argv[2]); } }

if ( n_chars == -1 ) oops("Read error from ", argv[1]);

if ( close(in_fd) == -1 || close(out_fd) == -1 ) oops("Error closing files",""); } { fprintf(stderr,"Error: %s ", s1); perror(s2); exit(1); }

预处理-编译器将头文件包含进来,宏定义进行替换,删除注释等内容格式化预处理,输出.i文件。

编译-检查代码的规范性、是否有语法错误等,检查无误后,把代码翻译成汇编语言,输出.s文件。

汇编-把”.s”文件转化为”.o”的二进制目标代码文件。

链接--gcc通过静态和动态链接函数库生成.exe可执行文件。

重庆工商大学unix编程刘波期末考试题全部是必考题

你可能喜欢

  • 进程间通信
  • 国际结算期末考试
  • 金融法规期末考试
  • 电大期末考试
  • 大一思修期末考试
  • 大学英语期末考试
  • 法学概论期末考试
  • 高二历史期末考试

重庆工商大学unix编程刘波期末考试题全部是必考题相关文档

最新文档

返回顶部