A. linux c程序(功能:打開一個文件並寫一個字元串) ,但文本文件始終是空的看程序
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define BUFFER 100
#define PATH "./test.txt"
int main(int argc,char *argv[])
{
int open_descript = 0; //open descript
int n = 0; //write descript
char buf[BUFFER] = "11111111"; //need to write characater string
open_descript = open(PATH,O_RDWR|S_IWUSR|S_IRUSR); //open a file and return the open d
if(open_descript<0)
{
printf("open file is failed!\n");
}
n=write(open_descript,buf,10);
printf("n=%d\n",n);
close(open_descript);
}
你得先 test.txt這個文件
B. linux c 的 open(文件路徑,O_WRONLY | O_CREAT) 裡面的與運算為什麼可以實現打不開就創建
這個是位或,不是與。位或、位與是這樣計算的。
如:二進制的 010 | 001 結果是 011,而 010 & 001 結果就是0了。
O_WRONLY 和 O_CREAT 的關系就相當於上面的 010 和 001。他們位或的值不是0,位與的值就是0了。0表示什麼都不做。用了位或後,就在一個整型的值上設置了不同的標志位,open函數會檢測對應的標志位,如果該標志位設置為1了,就執行對應的操作。
O_CREAT的意思就是創建的意思,在這里就是將 創建文件 的標志位設置為1,這樣open函數無法寫這個文件的時候就會創建他。
C. Linux的C文件以只讀模式打開,怎樣修改成可讀可寫呀
你好!
#chmod
777
C文件名
第一個7
文件屬主有讀,寫,執行許可權,
第二個7
文件屬組有讀,寫,執行許可權,
第三個7
其它用戶有讀,寫,執行許可權.
如有疑問,請追問。
D. Linux下用c語言打開文件路徑問題
C語言程序也是啟抄動一個進程, 所以襲他也也有環境變數, 默認是繼承父進程的環境變數;如果是shell界面直接啟動, 那麼就是繼承shell的環境變數; 如果是其他程序啟動這個那麼就是繼承那個程序的環境變數;
首先沒有搞清楚hello.html是可執行程序, 還是不可執行文件;現在我默認把他當作可執行文件
./表示當前目錄;即執行當前目錄下的hello.html; 如果沒有則報錯
而直接使用程序(hello.html)默認是先在PATH環境變數中查找; 如果PATH環境變數中沒有則報錯;
E. Linux C 緩沖文件和非緩沖文件讀寫方式用法
1.用write, read, open等系統調用編寫分別實現如下功能的程序(要求進行必要的出錯檢查版):
(1)創建一個權文件testfile.txt,文件內容從鍵盤輸入;
(2)將testfile.txt的內容顯示在屏幕上,並將testfile.txt的內容復制到一個新的文件file2.txt中。
實驗代碼:
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
F. linux c語言文件操作下,文件指針不用FILE*定義而是用int整型定義 (以下是一本書上的常式)
不要弄混open()和fopen():
open() 是底層系統調用,返回值為文件描述符, (int)
fopen() 是庫函數, 返回值為流指針(FILE *)
fopen() 的實現版也是調用的open()函數, 可以理解成權對底層調用的一個高層封裝.
G. linux環境下open("filename.txt", O_RDWR, 0644)這句中的0644是什麼模式(注意0644是c語言下八進制)
這個貌似是linux文件許可權的基本知識吧
0644應該是
rw-r--r--
也就是說:
用戶:可讀可寫
用戶組: 可讀
其他:可讀
H. linux下C編程中實現:任意打開一個文件,獲取文件的大小,然後將該文件切分成三等分,分別存到三個文件中
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
int main( int _argc, char ** _argv ){
int fd,fd1;
char buf[102400];
char *filename = NULL;
memset(buf,0x00,sizeof(buf));
filename= _argv[1];
fd=open(filename,O_RDWR | O_CREAT | O_APPEND,00777);
fd1 = lseek(fd, 0, SEEK_END);
printf("file neon size is [%d]\n", fd1);
lseek(fd, 0, SEEK_SET);
if( read( fd, buf, fd1)<0)
printf("read erro\n");
printf("file neon is [%s]",buf);
if(close(fd));
return 0;
}
這個是計算文件大小 然後取文件內容的程序 你只要把除3然後讀3次就可以了 然後把讀出的值分別用write寫入3個文件就ok了
I. 用linux下的c語言如何編寫保存文件函數
你的這抄個「保存文件」是什麼意思襲?或者說是在什麼情況下的?比如說:把信息輸入到已經打開的文件中(關閉不關閉文件),另外,有沒有緩沖區等?
最簡單的就是:打開一個文件(open函數),把要寫入的信息、數據通過write函數寫入文件中,然後再用close函數關閉文件。這種是適時性的,一般我們會有緩沖區(通過建立一個臨時文件或備份文件),即寫入文件中的信息並沒有直接寫入到原文件,而是寫入到緩沖區中,在應用程序中,如果我們確定要寫入原文件,可以通過一個命令來把緩沖區中的內容再真正寫入(可以用備份文件來替換原文件)到原文件中。