导航:首页 > 操作系统 > linuxc编程高级

linuxc编程高级

发布时间:2024-09-20 20:09:50

linux中的C编程问题<sys/types.h>

对于使用gcc编译时,头文件的搜索路径可以使用

echo|gcc-E-v-

查看,在结果中有这样一部份:

#include"..."searchstartshere:
#include<...>searchstartshere:
/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include

也就是说,如果没有指定路径的话,默认搜索范围就是这些路径,并且由命名可以知道

/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/include/x86_64-linux-gnu

都不是标准C中的,而是GNU-LINUX的,因此,题主所说的

#include<types.h>//包含的是标准C的types.h位于/usr/include/
#include<sys/types.h>//包含的是GNU-LINUXC头文件,位于/usr/include/x86_64-linux-gnu/sys

望采纳。

② 学C语言编程用Linux的哪个版本好

1、运维和分布式开发可以选择红帽版本:红帽版本主要分为了RHEL和centos,新手学习的时候如果不想太过于折腾,可以直接使用conetos,和RHEL在操作使用层面上完全没有区别的,只是来源有所区分,分为了开源免费和企业收费知虚漏两种。国内运维所采用的教材一般都是redhat,所以都是基于RHEL的。细分版本的情况下,初学者可以安装一个带有桌面的centots6或者7,都可以。
2、具有生产力的工具可以选择ubuntu版本:对于生产力版本最大的要求就是稳定了,ubuntu就是非常不错的选择,死机崩溃几乎可以避免了。还可以选择fedora版本,也是非常不错的,也具有非常不错的稳定性,不过整体来说还是ubuntu,各种生产力软件都适用于它,不用浪费时间找软件。而且还拥有海量的知识库,互联网上可以找到关于ubuntu的一切问题解决方案,非常适合初学者学习。
3、日常使用可以选择deepin、manjaro版本:相搭烂对于来说更加省心一些。deepin对于从Windows迁移过来的用户是非常不错的选择,高度兼容Windows风格和操作习惯的系统,可以适配Windows下的软件,可以让初学者快速融入其中。manjaro版本,拥有所有Linux桌面版本中最大的软件仓库,最多适配的桌面环境、最简单易用的应用管理方式,如果作为家用的情况下,是非常适合的选誉培择。

③ 在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);
}
}
}

你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢的探险者.
好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会用子进程.创建一个子进程是每一个程序员的基本要求!

④ 关于linux下的c语言编程

从你的提问来看,概念比较混乱:
1.为什么要使用make?你vim了makefile/Makefile档案吗?
2.cd make是转到“make”目录(linux中惯用,相当于windows下的文件夹),你都没建立“make”目录,自然找不到了。

针对你目前的情况,你可以:
1.基础
这里不需要用make
gcc -c main.c
gcc -c f1.c
gcc -c f2.c
gcc -o main main.o f1.o f2.o
(如果调用了外部函数,记得加上-lm。这个应该不需要多说吧。。。)
然后./main就可以得到你要的结果了
2.进阶
vim makefile
内容如下:
main: main.o f1.o f2.o
gcc -o main main.o f1.o f2.o
(第二行的 gcc 之前是 <tab> 按键产生的空白,应该不需要我多解释吧。。。)
保存退出,再用make去看看吧。

⑤ linux C语言编程gcc和qt学哪个好

gcc是一个编译器,qt是一个界面编程工具,两者是不能比的。

linux下编译c程序必然要用到gcc编译器,而qt则是用来开发界面程序的,类似windows下微软的mfc,你要在linux下写程序,必然的要会使用gcc对你的程序进行编译,至于qt只是个基于C++的界面程序开发工具,觉得以后用到就学一下,用不到就算了。

我在和你说一遍,gcc只是一个编译器。
你的意思是linux下的c/c++集成开发环境吧,anjuta,eclipse等等都可以,但他们只是提供了开发环境,编译器还是用的gcc。

⑥ 在Linux进行C语言编程的时候,程序里使用了mpi或者openmp或者都使用了该怎么进行编译执行谢谢

mpi或者openmp
这个,你指的是库?
如果是的话,编译时,加上链接库的编译选项就可以。
比如 gcc -hello.c -o hello -lm -lxml -L/usr/local/lib -lts
-lm 链接了math库
-lxml链接了xml库
-L/usr/local/lib -lts 链接了ts库,ts库存在目录/usr/local/lib中

阅读全文

与linuxc编程高级相关的资料

热点内容
国家反诈app哪里看注册时间 浏览:563
打孔式文件夹怎么装视频 浏览:29
php怎么学比较好 浏览:381
python中关于函数调用 浏览:362
debian系统命令行如何排序 浏览:407
车压缩机保修几年 浏览:307
linux同步脚本 浏览:664
福建新唐集成硬件加密 浏览:943
空调压缩机被破坏 浏览:105
现在学php怎么样 浏览:90
linuxchttp下载 浏览:770
大数据虚拟机云服务器 浏览:57
java与嵌入式开发 浏览:20
minios如何搭建文件服务器 浏览:1000
华为为啥有些压缩包解压不开 浏览:563
oracle可以编译存储吗 浏览:475
机械男和女程序员创业 浏览:799
自己怎么制作软件app 浏览:214
javajson字符串转java对象 浏览:230
必修一数学PDF 浏览:775