
UNIX编程
xuorui
这个作者很懒,什么都没留下…
展开
-
Unix/Linux中的/dev/fd机制
比较新的unix/linux系统都提供名为/dev/fd的目录,其中有文件0、1、2等文件,打开这些文件,相当于复制这些文件描述符例如:fd=open("/dev/fd/0",mode);等价于fd=dup(0);文件描述符fd和0将共享一个文件表记录项。我们再来做一些试验:在debian下运行以下命令#cd /dev/fd#ls -l总用量 0lrwx------ 1 root root 64转载 2010-04-04 20:00:00 · 11406 阅读 · 0 评论 -
fcntl_write.c
<br />#include <unistd.h><br />#include <sys/file.h><br />#include <sys/types.h><br />#include <sys/stat.h><br />#include <stdio.h><br />#include <stdlib.h><br />void lock_set(int fd, int type)<br />{<br />struct flock lock;<br />lock.l_whence = SEEK_SET;<原创 2010-10-03 11:22:00 · 436 阅读 · 0 评论 -
fopen.c
<br />#include <stdio.h><br />main()<br />{<br />FILE *fp;<br />int c;<br />if((fp=fopen("exist","w"))!=NULL){<br />printf("open success!/n");<br />}<br />fclose(fp);<br />}原创 2010-10-03 20:48:00 · 580 阅读 · 0 评论 -
串口使用
<br />/****************串口设置函数*************************/<br />int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop)<br />{<br />struct termios newtio,oldtio;<br />/*保存测试现有串口参数设置,在这里如果串口号等出错,会有相关的出错信息*/<br />if ( tcgetattr( fd,&oldtio) != 0) {<br原创 2010-10-03 20:19:00 · 566 阅读 · 0 评论 -
fcntl_read.c
<br />#include <unistd.h><br />#include <sys/file.h><br />#include <sys/types.h><br />#include <sys/stat.h><br />#include <stdio.h><br />#include <stdlib.h><br />void lock_set(int fd, int type)<br />{<br />struct flock lock;<br />lock.l_whence = SEEK_SET;/原创 2010-10-03 11:25:00 · 487 阅读 · 0 评论 -
write.c
<br />/*write.c*/<br />#include <unistd.h><br />#include <sys/types.h><br />#include <sys/stat.h><br />#include <fcntl.h><br />#include <stdlib.h><br />#include <stdio.h><br />#include <string.h><br />#define MAXSIZE<br />int main(void)<br />{<br />int i,f原创 2010-10-03 10:17:00 · 1114 阅读 · 0 评论 -
linux下《UNIX环境高级编程》(apue2)源码编译出错的处理方法
文章出处:http://www.diybl.com/course/3_program/c++/cppjs/2008617/126036.html相信很多跟我一样想要学习unix编程的朋友在兴冲冲拿到《unix环境高级编程》后,准备拿源码练练手时,执行第一个myls就出现一大堆的 错误,这未免时个不小的打击。今天把解决方法写下来,第一自己有个记录,第二也帮助那些被同样问题困扰的朋友尽快的进入li转载 2010-04-03 14:25:00 · 2324 阅读 · 1 评论 -
APUE源码编绎及执行
以下是APUE第二版和第一版源码的编绎和执行过程:1. Advanced Programming in the UNIX® Environment: Second Edition (APUE第二版) a. 进入APUE网站下载Source code: src.tar.tar。 b. 当前压缩包路径/APUEDIR/,解压并进入源码目录apue.2e。转载 2010-04-03 13:53:00 · 4400 阅读 · 0 评论 -
通向 UNIX 天堂的 10 个阶梯
讨论几种可以帮助 C++ 开发人员节省时间的技巧和免费工具。 C++ 开发人员在日常工作中通常要完成多个任务:开发新软件、调试其他人的代码、制订测试计划、为每个计划开发测试、管理衰退软件(regression suite)等等。在多种角色之间频繁转换会消耗大量宝贵的时间。为了帮助缓解这个问题,本文提供 10 种能够有效提高生产力的方法。本文中的示例使用 tcsh version 6,但是提转载 2010-04-04 20:47:00 · 751 阅读 · 0 评论 -
Unix环境高级编程 第三章习题答案
注,本人初涉linux,阅历有限,代码中固然会有许多弊端,请各位判官 批判 地看。还有,不能保证完全正确,希望大家共同进步,告诉小弟多点编程小技巧,不胜感谢。3.2编写一个于dup2()功能相同的函数,但不实用fcntl().上网搜了一下,竟然搜到同实验室的大牛的代码,基于他的基础,我再写了个。当然不能做到的是原子性,另外知道有一个ioctl,现在还没学到深入,到时再看看用这个函数能不能做。这种实转载 2010-04-04 20:06:00 · 3426 阅读 · 4 评论 -
fcntl函数的简单应用
fcntl函数原型如下:#include #include int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int fd, int cmd, struct flock *lock);相关的参数简单介绍如下:其中参数fd表示将要设置的文件描述符,参数cmd表示欲操作的命令。第三个参数总是一个整数,转载 2010-04-03 16:46:00 · 1002 阅读 · 0 评论 -
open.c
<br />/*open.c*/<br />#include <unistd.h><br />#include <sys/types.h><br />#include <sys/stat.h><br />#include <fcntl.h><br />#include <stdlib.h><br />#include <stdio.h><br />int main(void)<br />{<br />int fd;<br />if((fd = open("/tmp/hello.c", O_CREAT | O原创 2010-10-03 10:10:00 · 664 阅读 · 0 评论