① 怎么用linux写c语言
Linux正在成为开发人员的编程天堂,成为开源和免费操作系统。 Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境。 在本文中,我们将解释如何编写,编译和运行一个简单的C程序。 这将成为您迁移到可以在Linux上编写和执行的更复杂和有用的C程序的基础。
我们在Ubuntu 18.04 LTS系统上运行了本文中提到的步骤和命令。
我们将使用Linux命令行工具Terminal,以编译一个简单的C程序。 要打开终端,您可以使用Ubuntu Dash或Ctrl + Alt + T快捷方式。
第1步:安装build-essential软件包
为了编译和执行C程序,您需要在系统上安装必要的软件包。 在Linux终端中以root用户身份输入以下命令:
sudo apt-get install build-essential
系统会要求您输入root用户密码; 安装过程将在此之后开始。 请确保您已连接到互联网。
第2步:编写一个简单的C程序
安装必要的软件包之后,让我们编写一个简单的C程序。
打开Ubuntu的图形文本编辑器,将以下示例程序写入或复制到其中:
#include<stdio.h>
int main()
{
printf("nA sample C program www.linuxidc.comnn");
return 0;
}
然后使用.c扩展名保存文件。 在这个例子中,我将我的C程序命名为linuxidc.c
或者,您可以通过gedit中的终端编写C程序,如下所示:
gedit linuxidc.c
这将创建一个.c文件,您可以在其中编写和保存程序。
第3步:使用gcc编译C程序
在终端中,输入以下命令以生成您编写的程序的可执行版本:
句法:
$ gcc [programName].c -o programName
示例:
$ gcc linuxidc.c -o linuxidc
② 基于Linux下的C语言编程
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
#include<string.h>
int
main()
{
intfd;
char*p="hello";
charbuf[256]={0};
if(-1!=(fd=open("./new.txt",O_RDWR)))
{
if(-1!=write(fd,p,strlen(p)))
{
printf("WRITEOK ");
}
else
printf("WRITEFAILED ");
close(fd);
}
if(-1!=(fd=open("./new.txt",O_RDONLY)))
{
if(-1!=read(fd,buf,256))
printf("READ:%s ",buf);
close(fd);
}
return0;
}
③ linux(shell)脚本编程题目求教(200分请教)
1. 用vi打开一个空文件,文件名随意,然后在第一行写:
#!/bin/bash
另起一行跟上要使用的命令,比如ls date之类的,一条命令一行。
退出vi后,在命令行下输入 chmod +x 文件名 给文件增加运行权限
最后用 ./文件名 执行这个文件就可以了。
2. 环境变量用 env 和 set 2个命令可以看到,在命令行下直接输入就可以了,至于具体内容,太多,你得自己去查
3.
for 循环:
i=1
for i in 1..100; do
i=$(($i + 1))
done
while循环
i=1
while [ $i -le 100 ]; do
i=$(($i + 1))
done
算了,这些都能做,但做起来太麻烦,放弃了
④ 在Linux下用C语言编程
4。守护进程的创建
如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们只要在命令后面加上&符号SHELL就会把我们的程序放到后台去运行的. 这里我们"开发"一个后台检查邮件的程序.这个程序每个一个指定的时间回去检查我们的邮箱,如果发现我们有邮件了,会不断的报警(通过机箱上的小喇叭来发出声音). 后面有这个函数的加强版本加强版本
后台进程的创建思想: 首先父进程创建一个子进程.然后子进程杀死父进程(是不是很无情?). 信号处理所有的工作由子进程来处理.
#include
#include
#include
#include
#include
#include
#include
/* Linux 的默任个人的邮箱地址是 /var/spool/mail/用户的登录名 */
#define MAIL "/var/spool/mail/hoyt"
/* 睡眠10秒钟 */
#define SLEEP_TIME 10
main(void)
{
pid_t child;
if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("陆好滑Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;
while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}
你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢的探险者.
好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会用子进程.创早腊建一个子进程是每一个程序员的基袜锋本要求!