『壹』 linux C 中 sendfile 函數 使用方法... 高手來....
ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
sendfile從in_fd讀出,寫到out_fd中。要接收就讀out_fd即可。
如桐鬧仿果在服務端使用sendfile的話,服務端架構會將輸出結果重定向成為http server的回應。
希望我已經說清彎梁楚了局纖。
『貳』 在linux下 怎麼把一個文件的內容復制到另一個文件的末尾
使用cat命令通過管道可以把一個文件的內容復制到另一個文件的末尾,命令如下: cat 要復制的文件 >> 復制到的文件 說明: 管理操作符>為覆蓋,>>為追加。 cat命令說明:握大宏 cat命令連接文件並列印到標准輸出設備上,cat經常用來顯示文件的內容,類似於WINDOWS下的type命令。 注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用more等仿判命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,並且返回Shell提示符狀態。 語法 cat(選項)(參數) 選項 -n或-number:有1開始對所有輸出的行數編號; -b或--number-nonblank:和-n相似,只不過對於空白行不編號; -s或--squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的段冊空白行; -A:顯示不可列印字元,行尾顯示「$」; -e:等價於"-vE"選項; -t:等價於"-vT"選項; 參數 文件列表:指定要連接的文件列表。 實例 設ml和m2是當前目錄下的兩個文件 cat m1 (在屏幕上顯示文件ml的內容) cat m1 m2 (同時顯示文件ml和m2的內容) cat m1 m2 > file (將文件ml和m2合並後放入文件file中)
『叄』 如何在linux下用c編程實現文件的復制
打開一個讀文件和一個寫文件,用一個循環,fgetc每讀一個字元,就用fputc寫入另一個文件譽銷,這樣就實物簡現了文件的復制,和普通的C語言標罩虛褲准庫編程是一樣的,代碼如下:
int c;
FILE *in, *out;
in = fopen("file.in", "r");
out = fopen("file.out", "w");
while( ( c = fgetc(in) ) != EOF)
fputc(c, out);
fclose(in);
fclose(out);
『肆』 linux提供的拷貝函數
這句話表達得有問題,應該是 Linux 系統提供的文件拷貝命令是 cp。基本格式是:cp file1 file2
若想表達拷貝函數的話,那麼只能夠用於程序設計語言中,例如:字元串拷貝函數。
『伍』 linux下用簡單c語言代碼怎麼實現實現文件夾所有內容的復制
#include<unistd.h>
intmain(intargc,charconst*argv[])
{
system("cp-r目標目錄目的目錄");//把目標目錄和目的目錄改成實際目錄即可
return0;
}
直接調用shell命令即可
『陸』 linux下子目錄下的文件對根目錄復制移動的命令
Linux復制命令:cp、移動命令:mv,通過案例介紹下:
1.把A目錄下的.txt文件復制到根目錄下的B
[root@localhosttest]#sudocp/A/.txt/B
2.把A目錄下的C目錄復制到根目錄下的B
[root@localhosttest]#sudocp-R/A/C/B
#-R參數,遞歸操作,把C目錄下所以文件全部復制過去
3.把A目錄下的.txt文件移動到根目錄下的B
[root@localhosttest]#sudomv/A/.txt/B
『柒』 linux拷貝文件a.c到home目錄下,並且不用確認
1 rm -f a.c
2 pwd
3 find / -name hello.c
4 mv a.c b.c
5 強制保判圓亮存退出 顯示行掘寬腔肢號
『捌』 怎麼用C語言復制文件或者移動文件,不要用system的命令。Linux命令cp cat都不行,我要
要求 c:\source.txt文件必須存在,可以自己建立一個這樣的文本文件,並輸入一些數據,以便測試。
復制文件:源文件c:\source.txt 復制到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
}
希望能夠幫到你。
移動文件:源文件c:\source.txt 移動到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
remove("c:\\source.txt");
}
『玖』 linux c++ 拷貝文件問題
#include <stdlib.h>
#include <string.h>
#include <io.h>
#include <stdio.h>
#include <iostream>
#include <windows.h>
/*********************************************************************
功能:復制文件
參數:pSrc,原文件名
pDes,目標文件名
返回:<0,失敗
>0,成功
作者:
*********************************************************************/
#define BUF_SIZE 256
int File(const char * pSrc,const char *pDes)
{
FILE *in_file, *out_file;
char data[BUF_SIZE];
size_t bytes_in, bytes_out;
long len = 0;
if ( (in_file = fopen(pSrc, "rb")) == NULL )
{
perror(pSrc);
return -2;
}
if ( (out_file = fopen(pDes, "wb")) == NULL )
{
perror(pDes);
return -3;
}
while ( (bytes_in = fread(data, 1, BUF_SIZE, in_file)) > 0 )
{
bytes_out = fwrite(data, 1, bytes_in, out_file);
if ( bytes_in != bytes_out )
{
perror("Fatal write error.\n");
return -4;
}
len += bytes_out;
printf("ing file .... %d bytes \n", len);
}
fclose(in_file);
fclose(out_file);
return 1;
}
/*********************************************************************
功能:復制(非空)目錄
參數:pSrc,原目錄名
pDes,目標目錄名
返回:<0,失敗
>0,成功
作者:
*********************************************************************/
int Dir(const char * pSrc,const char *pDes)
{
if (NULL == pSrc || NULL == pDes) return -1;
mkdir(pDes);
char dir[MAX_PATH] = {0};
char srcFileName[MAX_PATH] = {0};
char desFileName[MAX_PATH] = {0};
char *str = "\\*.*";
strcpy(dir,pSrc);
strcat(dir,str);
//首先查找dir中符合要求的文件
long hFile;
_finddata_t fileinfo;
if ((hFile = _findfirst(dir,&fileinfo)) != -1)
{
do
{
strcpy(srcFileName,pSrc);
strcat(srcFileName,"\\");
strcat(srcFileName,fileinfo.name);
strcpy(desFileName,pDes);
strcat(desFileName,"\\");
strcat(desFileName,fileinfo.name);
//檢查是不是目錄
//如果不是目錄,則進行處理文件夾下面的文件
if (!(fileinfo.attrib & _A_SUBDIR))
{
File(srcFileName,desFileName);
}
else//處理目錄,遞歸調用
{
if ( strcmp(fileinfo.name, "." ) != 0 && strcmp(fileinfo.name, ".." ) != 0 )
{
Dir(srcFileName,desFileName);
}
}
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
return 1;
}
return -3;
}
『拾』 linux下c語言多線程拷貝文件出現問題,有時候會拷貝成功,有時候會失敗,求原因
如果針對問的問題來說,可以考慮使用同步機制.可以查如mutex等同步機制.另外,我會建議你應該使用單一個服務程序,用緩存空間去接收要打正碧早印的訊息,單一控制輸舉雀出螢幕,這樣應該會比較好.因為螢幕輸出只有一個,多線直慧首接控制,本來就不好處理.如果採用傳送訊息機制,應該就有順序分別,不易產生問題.