嵌入式Linux题库(4)

2018-12-29 22:46

getchar(); } } }

A、lock_set(fd, F_RDLCK) B、lock_set(fd, F_WRLCK) C、lock_set(fd, O_RDONLY) D、lock_set(fd, O_WRONLY)

<题目>下面的程序测试文件的读取锁。首先创建hello文件,之后对其上读取锁,最后释放读取锁。请选出应填写在空白处的选项。 int main(void) { int fd; fd=open(\ if(fd <0) { perror(\ exit(1); } _____A_____; getchar(); lock_set(fd, F_UNLCK); getchar(); close(fd); exit(0); }

void lock_set(int fd, int type) { struct flock lock; lock.l_whence = SEEK_SET; lock.l_start = 0; lock.l_len =0; while(1) { lock.l_type = type; if((fcntl(fd, F_SETLK, &lock)) == 0 ) { if( lock.l_type == F_RDLCK ) printf(\ else if( lock.l_type == F_WRLCK ) printf(\ else if( lock.l_type == F_UNLCK ) printf(\ return; } fcntl(fd, F_GETLK,&lock);

if(lock.l_type != F_UNLCK) { if( lock.l_type == F_RDLCK ) printf(\ else if( lock.l_type == F_WRLCK ) printf(\ getchar(); } } }

A、lock_set(fd, F_RDLCK) B、lock_set(fd, F_WRLCK) C、lock_set(fd, O_RDONLY) D、lock_set(fd, O_WRONLY)

<题目>下面的程序打开一个文件,写入字符串并读出。请选出应填写在空白处的选项。 int main() { FILE *stream; char s[3]={'a','b','c'}; stream=fopen(\ i=fwrite( ____D______ ); printf(\ fclose(stream); }

A、s,sizeof(char),nmemb,stream B、s,char,nmemb,fd C、s,sizeof(char),nmemb,FILE D、s,char,nmemb,FILE <题目>下面的程序获得当前进程的PID。请选出应填写在空白处的选项。 int main() { printf(\}

A、getpid() B、getppid() C、open(fd, pid) D、fopen(stream, pid) <题目>下面的程序判断fork函数返回值的情况。请选出应填写在空白处的选项。 int main(void) { pid_t result; ____A______; if(result == -1) { perror(\ exit; } else if(result == 0) { printf(\ }

else { printf(\ } }

A、result = fork() B、result = fork(-1) C、result = fork(0) D、result = fork(1)

<题目>下面的程序判断fork函数返回值的情况。请选出应填写在空白处的选项。 int main(void) { pid_t result; result = fork() ; if(result == -1) { perror(\ exit; } else if( _____D_____ ) { printf(\ } else { printf(\ } }

A、result < 0 B、result == 0 C、result > 0 D、result !== 0 <题目>下面的程序使用文件名的方式来查找可执行文件,同时使用参数列表的方式。请选出应填写在空白处的选项。 int main() { if(fork()==0) { /*此处相当于调用“ps -ef”命令*/ if( _____C_____ (\ perror(\ } }

A、execl B、execle C、execlp D、execve

<题目>下面的程序使用使用完整的文件目录来查找对应的可执行文件,同时使用参数列表的方式。请选出应填写在空白处的选项。 int main() { if(fork()==0)

{ /*注意此处已给出ps命令所在的完整路径*/ if( ______A____ (\ perror(\ } }

A、execl B、execle C、execlp D、execve

<题目>下面的程序将环境变量添加到新建的子进程中去,这里的“env”是查看当前进程环境变量的命令使用使用完整的文件目录来查找对应的可执行文件,同时使用参数列表的方式。请选出应填写在空白处的选项。 int main() { char *envp[]={\TH=/tmp\ if(fork()==0) { /*注意此处已给出env命令的完整路径*/ if( _____B_____ (\ perror(\ } }

A、execl B、execle C、execlp D、execve

<题目>下面的程序将环境变量添加到新建的子进程中去,这里的“env”是查看当前进程环境变量的命令使用使用完整的文件目录来查找对应的可执行文件。请选出应填写在空白处的选项。 int main() { /*命令参数列表,必须以NULL结尾*/ char *arg[]={\ char *envp[]={\ if(fork()==0) { if( ____D______ (\ perror(\ } }

A、execl B、execle C、execlp D、execve

<题目>下面的程序为服务器端应用程序,首先建立起socket,然后调用本地端口进行绑定,接着开始与客户端建立联系,并接收客户端发送的消息。请选出应填写在空白处的选项。 #define SERVPORT 3333 #define BACKLOG 10

#define MAX_CONNECTED_NO 10 #define MAXDATASIZE 5 int main() {

struct sockaddr_in server_sockaddr,client_sockaddr; int sin_size,recvbytes; int sockfd,client_fd;

char buf[MAXDATASIZE]; /*建立socket连接*/ if( _____A_____ ) { perror(\ exit(1); }

printf(\/*设置sockaddr_in 结构体中相关参数*/ server_sockaddr.sin_family=AF_INET;

server_sockaddr.sin_port=htons(SERVPORT); server_sockaddr.sin_addr.s_addr=INADDR_ANY; bzero(&(server_sockaddr.sin_zero),8); /*绑定函数bind*/

if(bind(sockfd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr))== -1) { perror(\ exit(1); }

printf(\/*调用listen函数*/

if(listen(sockfd,BACKLOG)== -1) { perror(\ exit(1); }

printf(\

/*调用accept函数,等待客户端的连接*/

if((client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size))== -1) { perror(\ exit(1); }

/*调用recv函数接收客户端的请求*/

if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))== -1) { perror(\ exit(1); }

printf(\close(sockfd);


嵌入式Linux题库(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:街道2018年党建工作调研报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: