fopen()实例:    fopen(文件名, 使用文件的方式)

FILE *fp;

if((fp = fopen("file", "w")) ==  NULL)        // fopen()的返回值是一个指针 file为文件名   w:写 r:读 a:追加

printf("cannot open file !");

exit(0);

在最后不要忘记关闭fp: fclose (fp);要养成好的习惯

open()实例:  open(const char *pathname, 打开的操作类型)

char string[] = "i love my mother !"

if((fd = open("file.c", O_CREAT | O_TEXT)) == -1 )      // open()的返回值是int型 ‘ |’ 为‘或’

printf("cannot open file.c !");

exit(0);

write(fd, handle, string, strlen(string));

1) O_RDONLY 只读打开
2) O_WRONLY 只写打开
3) O_RDWR 读、写打开
4) O_APPEND 每次写时都加到文件的尾端
5) O_CREAT 若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明该新文件的存取许可权位。
6) O_EXCL 如果同时指定了O_CREAT,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作。
7) O_TRUNC 如果此文件存在,而且为只读或只写成功打开,则将其长度截短为0。
8) O_NOCTTY 如果p a t h n a m e指的是终端设备,则不将此设备分配作为此进程的控制终端。
9) O_NONBLOCK 如果p a t h n a m e指的是一个F I F O、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的I / O操作设置非阻塞方式。
10)O_SYNC 使每次w r i t e都等到物理I / O操作完成。

在最后不要忘记关闭fd : close (fd);要养成好的习惯

fopen(),open():打开一个文件用于读或写fopen()函数经常被我们使用 fopen()实例:    fopen(文件名, 使用文件的方式)FILE *fp;if((fp = fopen("file", "w")) ==  NULL)        //fopen()的返回值是一个指针    file为文件名   w:写 r:读 a:追加 {     print
1.来源: open 是UNIX系统调用 函数 (包括LINUX等),返回的是文件描述符( File Descriptor),它是文件在文件描述符表里的索引。 fopen 是ANSIC标准中的 C语言 函数 ,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。 2.文件IO层次 如果从文件IO的角度来看,前者属于低级IO 函数 ,后者属于高级IO 函数 。低级和高级的简单区分标准是:谁离系统内核更...
【基本概念】   阻塞操作是指在执行设备操作时,托不能获得资源,则挂起进程直到满足操作所需的条件后再进行操作。被挂起的进程进入休眠状态(不占用cpu资源),从调度器的运行队列转移到等待队列,直到条件满足。 2、 非阻塞 非阻塞 操作是指在进行设备操作是,若操作条件不满足并不会挂起,而是直接返回或重新查询(一直占用CPU资源)直到操作条件满足为止。   当用户空间的应用...
在项目中使用了 fopen 函数 阻塞现象,而且阻塞的时间很长(大概二十分钟) 函数 原型: FILE * fopen (const char * path, const char * mode); fopen 出现问题分析: 1 、参数path问题, 路径不对 fopen 就会是返回失败。 2、 参数mode问题,mode控制文件打开的 方式 ,如果用户打开的 方式 超出了当前用户的权限,那么 fopen 也会返回失...
C语言 命名管道 open 阻塞的原因与解决方法 open ()的第一个参数是文件路径,第二个参数是打开的文件的读写 方式 (只写,只读,读写)与堵塞/非堵塞设置。 由于 open 函数 的第二个参数如果加上O_NONBLOCK非堵塞,则会在执行 open 的时候立即返回,若出错则会设置errno。本话题旨在解决不设置O_NONBLOCK非堵塞时出现的堵塞情况分析。 查阅博客资料,发现有关读写打开的堵塞在此不再赘述,请...
遇到一个问题,刚好这位博主有总结,转一下 原文:https://blog.csdn.net/men_wen/article/details/59158365  关于有名管道 open 时阻塞的问题 1. 发现错误 在学习Unix网络编程卷二的有名管道FIFO时,无意间犯下一个错误,故写此总结。  在写FIFO的服务器和客户端之间通信的代码时,服务器端主 函数 创建两个有名管道,然后分被以读写打开两个...
非阻塞 I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。 对于一个给定的描述符两种方法对其指定 非阻塞 I/O: (1)调用 open 获得描述符,并指定O_NONBLOCK标志 (2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。 flags = fcntl( s, F_GETFL, 0 ) ) fcntl( s, F_SETFL, flags | O_NONBLOCK )
` fopen ` 和 ` open ` 都是用于打开文件的 函数 ,但是它们有一些不同之处: 1. ` fopen ` 是 C 标准库提供的 函数 ,而 ` open ` 是 POSIX 标准提供的 函数 。因此,` fopen ` 可以在任何支持 C 标准库的平台上使用,而 ` open ` 则可以在符合 POSIX 标准的平台上使用。 2. ` fopen ` 函数 返回一个 ` FILE *` 类型的指针,可以通过该指针来操作文件。而 ` open ` 函数 返回一个整数类型的文件描述符( file descriptor),可以通过该文件描述符来操作文件。 3. ` fopen ` 函数 提供了一些高级的文件操作 函数 ,例如 `fwrite`、`fread`、` fp rintf` 等,可以更方便地进行文件的读写操作。而 ` open ` 函数 则需要使用低级的系统调用 函数 (如 `write`、`read`)来进行文件读写。 4. ` fopen ` 函数 在打开文件时采用了一些默认的选项,例如以文本模式或二进制模式打开文件、自动进行缓冲等。而 ` open ` 函数 需要手动设置选项,例如打开文件时指定读写模式、权限等。 综上所述,如果您使用 C 语言进行文件操作,可以选择使用 ` fopen ` 函数 ;如果您需要更底层的文件操作或者在符合 POSIX 标准的平台上进行文件操作,可以选择使用 ` open ` 函数