c語言寫linux
① c語言如何讀寫 linux文本文件
Linux下C語言的文件(fputc,fgetc,fwrite,fread對文件讀寫操作)
//
fputc 向文件寫入字元
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("不能打開文件\n");
exit(0);
}
while ((ch=getchar())!='\n')
fputc( ch, fp );
fclose(fp);
}
-------------
小提示:
fp=fopen("test.txt","w") ,把"w"改為 "a" 可以創建文件並且追加寫入內容
exit(0); 需要包含 stdlib.h 頭文件,才能使用
//
fgetc 讀取字元
#include <stdio.h>
#include <stdlib.h>
main( int argc, char *argv[] )
{
char ch;
FILE *fp;
int i;
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("不能打開文件\n");
exit(0);
}
while ((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
文件結尾,通過判斷 EOF
//
fwrite 的使用
使數組或結構體等類型可以進行一次性讀寫
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","wb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("請輸入信息,姓名 年齡 分數1 分數2 地址:\n");
for( i=0;i<2;i++)
{
scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);
fwrite(&stu,sizeof(stu),1,fp1);
}
fclose(fp1);
}
//
fread 的使用
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","rb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("讀取文件的內容如下:\n");
for (i=0;i<2;i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %7.2f %7.2f %s\n",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
}
fclose(fp1);
}
//
fprintf , fscanf, putw , getw , rewind , fseek 函數
這些函數的話我就不演示了 ,
這些函數基本都一對來使用,例如 fputc 和 fgetc 一起來用.
② 求一個C語言寫的運行在linux下的程序。
#include<stdio.h>
#include<stdlib.h>
int main(){
printf("ON\n");
sleep(60);
system("clear");
printf("OFF\n");
return 0;
}
③ linux終端下如何進行C語言編譯
1、進入linux系統,創建C文件「vim test.c」同時進入vim編輯界面,也可以利用指令「touch test.c」創建後內,然後「vim test.c」進入vim編輯界面。容
④ 在C語言下寫一個簡單的linux進程程序
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#define MUSIC "/home/brisk/Music/QQ愛.mp3"
typedef struct
{
int s;
int m;
int h;
int date;
}TIME;
void child_run(TIME *alarm)
{
setsid();
chdir("/");
int fd;
long sleep_time;
if((fd=open("/dev/null",O_RDWR))==-1)
exit(1);
p2(fd,STDOUT_FILENO);
p2(fd,STDIN_FILENO);
p2(fd,STDERR_FILENO);
close(fd);
//close(STDOUT_FILENO);
//close(STDIN_FILENO);
//close(STDERR_FILENO);
time_t t;
long sec;
struct tm *ti;
//sec=alarm->h*3600+alarm->m*60+alarm->s;
t=time(NULL);
ti=localtime(&t);
alarm->h+=(alarm->date-ti->tm_mday)*24;
sec=alarm->h*3600+alarm->m*60+alarm->s;
sleep_time=sec-(ti->tm_hour*3600+ti->tm_min*60+ti->tm_sec);
if(sleep_time>0)
sleep(sleep_time);
else
exit(1);
//sleep(sec-(ti->tm_hour*3600+ti->tm_min*60+ti->tm_sec));
if(fork()==0)
execl("/usr/bin/mplayer","mplayer",MUSIC,NULL);
exit(0);
}
void again(void)
{
printf("輸入有誤,請重新輸入:");
while(getchar()!='\n')
continue;
}
int main(void)
{
TIME alarm;
printf("輸入日期:");
while(scanf("%d",&alarm.date)==0||alarm.date>31)
again();
printf("請輸入小時:");
while(scanf("%d",&alarm.h)==0||alarm.h>=24)
again();
printf("請輸入分鍾:");
while(scanf("%d",&alarm.m)==0||alarm.m>=60)
again();
printf("請輸入秒數:");
while(scanf("%d",&alarm.s)==0||alarm.s>=60)
again();
if(fork()==0)
child_run(&alarm);
return 0;
}
⑤ c語言如何讀寫 linux文本文件
Linux下C語言的文件(fputc,fgetc,fwrite,fread對文件讀寫操作)
//
fputc 向文件寫入字元
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("不能打開文件 ");
exit(0);
}
while ((ch=getchar())!=' ')
fputc( ch, fp );
fclose(fp);
}
-------------
小提示:
fp=fopen("test.txt","w") ,把"w"改為 "a" 可以創建文件並且追加寫入內容
exit(0); 需要包含 stdlib.h 頭文件,才能使用
//
fgetc 讀取字元
#include <stdio.h>
#include <stdlib.h>
main( int argc, char *argv[] )
{
char ch;
FILE *fp;
int i;
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("不能打開文件 ");
exit(0);
}
while ((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
文件結尾,通過判斷 EOF
//
fwrite 的使用
使數組或結構體等類型可以進行一次性讀寫
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","wb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("請輸入信息,姓名 年齡 分數1 分數2 地址: ");
for( i=0;i<2;i++)
{
scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);
fwrite(&stu,sizeof(stu),1,fp1);
}
fclose(fp1);
}
//
fread 的使用
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","rb"))==NULL)
{
printf("不能打開文件");
exit(0);
}
printf("讀取文件的內容如下: ");
for (i=0;i<2;i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %7.2f %7.2f %s ",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
}
fclose(fp1);
}
//
fprintf , fscanf, putw , getw , rewind , fseek 函數
這些函數的話我就不演示了 ,
這些函數基本都一對來使用,例如 fputc 和 fgetc 一起來用.
⑥ 學C語言為什麼要用linux
先在windows系統下把C語言的基本知識學好,之後到linux系統下繼續深造。
當然,前提是你想進一步掌握更多的知識,否則,在windows系統下學點C語言就夠了,比如寫點簡單的小程序什麼的。
以下內容摘自《Linux C編程一站式學習》的前言:
為什麼要在Linux平台上學C語言?用Windows學C語言不好嗎?
用Windows還真的是學不好C語言。C語言是一種面向底層的編程語言,要寫好C程序,必須對操作系統的工作原理非常清楚,因為操作系統也是用C寫的,我們用C寫應用程序直接使用操作系統提供的介面。
Linux是一種開源的操作系統,你有任何疑問都可以從源代碼和文檔中找到答案,即使你看不懂源代碼,也找不到文檔,也很容易找個高手教你,各種郵件列表、新聞組和論壇上從來都不缺樂於助人的高手;而Windows是一種封閉的操作系統,除了微軟的員工別人都看不到它的源代碼,只能通過文檔去猜測它的工作原理,更糟糕的是,微軟向來喜歡藏著揶著,好用的功能留著自己用,而不會寫到文檔里公開。
本書的第一部分在Linux或Windows平台上學習都可以,但第二部分和第三部分介紹了很多Linux操作系統的原理以幫助讀者更深入地理解C語言,只能在Linux平台上學習。
Windows平台上的開發工具往往和各種集成開發環境(IDE,Integrated Development Environment)綁在一起,例如Visual Studio、Eclipse等。使用IDE確實很便捷,但IDE對於初學者絕對不是好東西。微軟喜歡宣揚傻瓜式編程的理念,告訴你用滑鼠拖幾個控制項,然後點一個按鈕就可以編譯出程序來,但是真正有用的程序有哪個是這么拖出來的?很多從Windows平台入門學編程的人,編了好幾年程序,還是只知道編完程序點一個按鈕就可以跑了,把幾個源文件拖到一個項目里就可以編譯到一起了,如果有更復雜的需求他們就傻眼了,因為他們腦子里只有按鈕、菜單的概念,根本沒有編譯器、鏈接器、Makefile的概念,甚至連命令行都沒用過,然而這些都是初學編程就應該建立起來的基本概念。另一方面,編譯器、鏈接器和C語言的語法有密切的關系,不了解編譯器、鏈接器的工作原理,也不可能真正掌握C的語法。所以,IDE並沒有幫助你學習,而是阻礙了你學習,本來要學好C編程只要把語法和編譯命令學會就行了,現在有了IDE,除了學會語法和編譯命令,你還得弄清楚編譯命令和IDE是怎麼集成的,這才算學明白了,本來就很復雜的學習任務被IDE搞得更加復雜了。Linux用戶的使用習慣從來都是以敲命令為主,以滑鼠操作為輔,從學編程的第一天起就要敲命令編譯程序,等到你把這些基本概念都搞清楚了,你覺得哪個IDE好用你再去用,不過到那時候你可能會更喜歡vi或emacs而不是IDE了。
⑦ linux操作系統是用C++還是C語言寫的
linux內核是用c和匯編寫的,不是c++
kde桌面環境,就是用qt寫的,qt是c++的一個程序開發框架
linux主要還是用c語言
⑧ linux和c語言
linux的是一操作系統,其本質是一系列的任務調度,內存管理,虛擬文件系統等演算法回的集合答.它告訴你的計算機怎麼充分利用你機器上的資源.linux內核的源代碼是用C語言寫的(源代碼也見於pub.kernel.org).
C語言是一門編程語言,其本質是把一些C語言關鍵詞描述的演算法轉換為計算機可以直接運行的二進制機器語言的整體.想把C語言寫成的代碼編譯成二進制機器語言要使用C編譯器(C compiler),C編譯器是一個軟體,它可以把C語言寫成的代碼轉換成機器可以執行的二進制文件. 世界上有多款這樣的軟體,如gcc. linux內核及linux環境下可用的所有軟體都是用gcc編譯的.
簡而言之,linux是一個操作系統,是一個各種應用程序工作的環境. linux的內核,即這個操作系統的核心代碼,是用c語言編寫,並用gcc編譯的. linux內核是一套描述系統工作方式的演算法,C語言是其實現途徑. C語言也可以用來編譯其它的代碼.
⑨ Linux中寫C語言程序用什麼軟體
如果想在Linux下編程的話
首先要熟悉linux,基本命令什麼的
然後就是編程環境,linux下沒有VS這樣的專IDE,當然你要用eclipse或netbeans也可以屬了,不過真正的linux hacker是不會用的。
通常的編程環境是vim/emacs + gcc + gdb + make
每個都很強大,不過不像VS那樣有圖形界面,基本是命令解決的,剛開始學習可能有點困難,熟悉之後會很爽的
接下來要了解linux的系統調用等API,開始讀<<linux程序設計>>是可以的,還有<<unix環境高級編程>>也是必讀之書,另外unp也是應該讀的。
如果要開發有圖形界面的軟體的話,就學學GTK+吧,是一個純C的控制項庫。
熟悉編程之後,就可以嘗試研究內核咯。