㈠ 如何用c語言創建一個文件並按格式保存
1、打開C-Free5.0新建一個空白頁面,然後將C語言的基礎格式寫完,注意格式縮進。如下圖所示。
㈡ 大俠請幫忙,用c語言用open函數在當前目錄下創建一個文件test.txt
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(void)
{
int i,fp=open("test.txt",O_RDWR);
for (i=1;i<=100;i++)
write(fp,&i,sizeof(int));
lseek(fp,50,SEEK_SET);
read(fp,&i,sizeof(int));
printf("%d\n",i);
lseek(fp,100,SEEK_SET);
read(fp,&i,sizeof(int));
printf("%d\n",i);
close(fp);
return 0;
}
㈢ 如何用c語言創建文件夾
創建文件夾有兩個方法:
①使用cmd命令mkdir,舉例:system("mkdir
D:\\dic");這條命令執行mkdir程序,在D盤創建一個文件夾dic。
②使用windows提供的CreateDictionary函數,需要包含頭文件windows.h,使用方法:
CreateDictionary("D:\\dic", NULL);
同樣在D盤創建一個文件夾dic,因為轉義字元的問題所以用兩個斜杠。
這個命令和函數我就不詳細解釋了,分別參考mkdir和CreateDictionary的網路。
這里強調一下,這里說的mkdir是cmd命令,CreateDictionary是windows
API函數。
㈣ 用C語言創建文件
工具:華碩電腦
原料:C-Free5.0
1、打開C-Free5.0新建一個空白頁面,然後將C語言的基礎格式寫完,注意格式縮進。
㈤ 1、編寫一個C語言程序,用open函數在當前目錄下創建一個文件test.txt,然後將數字1~100按順序寫入文件,
#include <stdio.h>
#include <stdlib.h>
int open();
void main()
{
open();
}
int open()
{
FILE *fp = fopen("test.txt","w+");
for(int i=1;i<101;i++)
{
char ch[1];
sprintf(ch,"%d",i); // int型轉為char型,還可以用itoa函數但是這個函數不是標准庫的函數不利於移植,所以用sprintf
fprintf(fp,ch);
fprintf(fp," ");
}
return 0;
}
㈥ 要怎麼用open
C語言中open函數
作用:打開和創建文件。
#include<fcntl.h>
intopen(constchar*pathname,intflags);
intopen(constchar*pathname,intflags,mode_tmode);
返回值:成功則返迴文件描述符,否則返回-1
對
於open函數來說,第三個參數僅當創建新文件時(即 使用了O_CREAT 時)才使用,用於指定文件的訪問許可權位(access
permission bits)。pathname 是待打開/創建文件的POSIX路徑名(如/home/user/a.cpp);flags
用於指定文件的打開/創建模式,這個參數可由以下常量(定義於fcntl.h)通過邏輯位或邏輯構成。
㈦ C語言中open函數如何使用使用
C語言中open函數
作用:打開和創建文件。
簡述:
1
2
3
4
#include<fcntl.h>
intopen(constchar*pathname,intflags);
intopen(constchar*pathname,intflags,mode_tmode);
返回值:成功則返迴文件描述符,否則返回-1
對於open函數來說,第三個參數僅當創建新文件時(即 使用了O_CREAT 時)才使用,用於指定文件的訪問許可權位(access permission bits)。pathname 是待打開/創建文件的POSIX路徑名(如/home/user/a.cpp);flags 用於指定文件的打開/創建模式,這個參數可由以下常量(定義於fcntl.h)通過邏輯位或邏輯構成。
1
2
3
O_RDONLY只讀模式
O_WRONLY只寫模式
O_RDWR讀寫模式
打開/創建文件時,至少得使用上述三個常量中的一個。以下常量是選用的:
1
2
3
4
5
6
O_APPEND每次寫操作都寫入文件的末尾
O_CREAT如果指定文件不存在,則創建這個文件
O_EXCL如果要創建的文件已存在,則返回-1,並且修改errno的值
O_TRUNC如果文件存在,並且以只寫/讀寫方式打開,則清空文件全部內容(即將其長度截短為0)
O_NOCTTY如果路徑名指向終端設備,不要把這個設備用作控制終端。
O_NONBLOCK如果路徑名指向FIFO/塊文件/字元文件,則把文件的打開和後繼I/O
設置為非阻塞模式
1
(nonblockingmode)
以下三個常量同樣是選用的,它們用於同步輸入輸出
1
2
3
4
O_DSYNC等待物理I/O結束後再write。在不影響讀取新寫入的數據的
前提下,不等待
文件屬性
更新。
1
2
O_RSYNCread等待所有寫入同一區域的寫操作完成後再進行
O_SYNC等待物理I/O結束後再write,包括更新文件屬性的I/O
open返回的文件描述符一定是最小的未被使用的描述符。
如果 NAME_MAX(文件名最大長度,不包括'\0')是 14,而我們想在當前目錄下創建文件名長度超過 14 位元組的文件,早期的 System V 系統(如 SVR2)會截斷超出部分,只保留前 14 個位元組;而由 BSD 衍生的(BSD-derived)系統會返回錯誤信息,並且把 errno 置為 ENAMETOOLONG。
POSIX.1 引入常量 _POSIX_NO_TRUNC 用於決定是否截斷長文件名/長路徑名。如果_POSIX_NO_TRUNC 設定為禁止截斷,並且路徑名長度超過 PATH_MAX(包括 '\0'),或者組成路徑名的任意文件名長度超過 NAME_MAX,則返回錯誤信息,並且把 errno 置為 ENAMETOOLONG。
㈧ C語言中open函數如何使用使用
C語言中open函數
作用:打開和創建文件。
簡述:
1
2
3
4
#include<fcntl.h>
intopen(constchar*pathname,intflags);
intopen(constchar*pathname,intflags,mode_tmode);
返回值:成功則返迴文件描述符,否則返回-1
對於open函數來說,第三個參數僅當創建新文件時(即
使用了O_CREAT
時)才使用,用於指定文件的訪問許可權位(access
permission
bits)。pathname
是待打開/創建文件的POSIX路徑名(如/home/user/a.cpp);flags
用於指定文件的打開/創建模式,這個參數可由以下常量(定義於fcntl.h)通過邏輯位或邏輯構成。
1
2
3
O_RDONLY只讀模式
O_WRONLY只寫模式
O_RDWR讀寫模式
打開/創建文件時,至少得使用上述三個常量中的一個。以下常量是選用的:
1
2
3
4
5
6
O_APPEND每次寫操作都寫入文件的末尾
O_CREAT如果指定文件不存在,則創建這個文件
O_EXCL如果要創建的文件已存在,則返回-1,並且修改errno的值
O_TRUNC如果文件存在,並且以只寫/讀寫方式打開,則清空文件全部內容(即將其長度截短為0)
O_NOCTTY如果路徑名指向終端設備,不要把這個設備用作控制終端。
O_NONBLOCK如果路徑名指向FIFO/塊文件/字元文件,則把文件的打開和後繼I/O
設置為非阻塞模式
1
(nonblockingmode)
以下三個常量同樣是選用的,它們用於同步輸入輸出
1
2
3
4
O_DSYNC等待物理I/O結束後再write。在不影響讀取新寫入的數據的
前提下,不等待
文件屬性
更新。
1
2
O_RSYNCread等待所有寫入同一區域的寫操作完成後再進行
O_SYNC等待物理I/O結束後再write,包括更新文件屬性的I/O
open返回的文件描述符一定是最小的未被使用的描述符。
如果
NAME_MAX(文件名最大長度,不包括'\0')是
14,而我們想在當前目錄下創建文件名長度超過
14
位元組的文件,早期的
System
V
系統(如
SVR2)會截斷超出部分,只保留前
14
個位元組;而由
BSD
衍生的(BSD-derived)系統會返回錯誤信息,並且把
errno
置為
ENAMETOOLONG。
POSIX.1
引入常量
_POSIX_NO_TRUNC
用於決定是否截斷長文件名/長路徑名。如果_POSIX_NO_TRUNC
設定為禁止截斷,並且路徑名長度超過
PATH_MAX(包括
'\0'),或者組成路徑名的任意文件名長度超過
NAME_MAX,則返回錯誤信息,並且把
errno
置為
ENAMETOOLONG。
㈨ 跪求解決:C語言open函數想創建可寫文件卻創建成了只讀文件
open改為
open("mytxt2,txt",O_RDWR | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO)