基于linuxc
首先恭喜楼主:这是不可能滴
第二:这是为什么呢???
LINUX下面执行文件是看文件属性chmod+x为执行,WIN下边是按照.exe或者.com这两种格式执行
如果你在WIN下边编译后是EXE文件,所以不能在LINUX下边执行了
‘贰’ 基于linux的C程序代码能在windows xp的环境下运行吗
只要源代码中不包含本地代码就可以用相应平台的编译器进行编译运行。
例如:
在Linux下用gcc编译过可以运行的源代码,可以用Windows版的gcc来编译运行。但是gcc编译通过可以运行的代码,用turbo
c的编译器可能编译不了而出错。
同时,如果源代码中包含本地代码(如GUI相关的代码)即使Linux版的gcc可以编译通过,从而用Windows版的gcc来编译,同样有可能编译不了而出错。
所以综上所述,Linux下同样的c语言源代码可以在Windows下编译通过的条件是:
1.使用同一组织或公司开发的编译器,但必须是不同平台的版本。如:Lin版GCC和Win版GCC,而不能是GCC(不论哪个版本)和turbo
c。
2.不能包含本地代码。
‘叁’ 为什么嵌入式要用linuxC,和普通的C语言有什么区别呢!
C语言本身遵循ANSI
C89或者C99标准
并不区分linux或者windows
楼上说的mfc也和c语言没什么关系
是windows基于c++开发的库
C语言本身语法很简单比如你知道一些运算符就可以入门
但是如果要深入在linux环境下做c语言编程
可能需要了解linux操作系统的机制,可以看linux高级编程之类的书
如果需要做嵌入式开发,更需要了解硬件以及linux内核的一些机制,
编程需要靠经验和自己的思维慢慢积累,好学不好学,有人带最好,没人带就一步步入门吧
c语言基础知识
linux用户态编程
linux内核编程
一步步来
‘肆’ 路过可以看:会基于Linux下的C编程的,可以写以下编程吗
其实三道题目都很简单
第一道题根本就不需要依赖基于linux平台的编程
完全可以使用标准c语言的部分搞定,完全是c语言基础课程中的练习题
第二道题其实也非常简单,管道可以用pipe这个函数,不会可以man下,看不懂英文可以网络谷何找下
这种简单的东西甚至只要你用心会有现成的代码让你简化
第三道题涉及到socket编程,服务器端先创建套接字描述符
然后bind绑定端口
之后listen监听
再使用accept阻塞等待客户端发来连接
客户端就简单多了
首先同样是使用socket创建一个套接字描述符
之后就使用connect向指定的ip以及端口发起连接
你的程序服务器要做的事情是收到连接后判断客户端发来的数据
其实就是判断一个路径然后到该路径里去搜索字符串末尾给出的文件名(当然你的这个路径是固定的了)
如果有这个文件那么就将该文件的内容通过二进制形式复制给客户端(其实就是文件的操作)
如果没有这个文件的话就返回一个错误信
然后断开连接
客户端是先发起连接,然后发送指定文件名,就是一个字符串然后等待服务器端给出响应
如果服务器端开始发送文件的话就在你的本地某个分区路径里创建一个文件,并把从服务器端读来的二进制内容写到该文件里
这样写完后服务器断开连接,客户端退出,文件下载完毕
其实你可以把你看成是一个简单FTP服务器
网上都有现在的代码.自己努力看了后稍加修改就可完成作业了
作业一定要自己做,我这里不给你写代码了,三道题目下来的话代码量也不是太少
自己做的话才能学到东西
‘伍’ 基于linux下的c编程,要求能够检查出文件长度大于0x7f的文件,并显示出文件的具体位置
1.文件大小的检查:去看看APUE(Advanced Programming in The UNIX Environment Second Edition)UNIX 环境高级编程 这本书的 第四章 ,介绍文件的 使用 stat 函数 填充stat结构体,其中的st_size 就是文件大小了
2.遍历某目录所有文件:
opendir(具体用法可以查相关书籍或者在linux 下使用命令 man opendir 查看 ) 系统调用 会返回指定目录下的所有文件,通过递归调用对比文件大小 找到你需要的文件
‘陆’ 基于linux的C语言程序排错
有多个错误,大致如下:
1、canshu->fp=fp; 这两的canshu还是指向未知内存的,需要先初始化
PARA *canshu, ttt;
canshu = &ttt;
canshu->fp=fp;
2、fclose(fp); 由于把fp传给各个子线程,子进程结束前不能关闭文件
3、各个子线程共享canshu导致统计错误。由于各个线程统计的参数是不同的,不能共享。
文件指针canshu->fp,每次读取后都会发生偏移,导致其他线程不是从文件开头开始读取的
canshu->i,每个子线程创建都被修改,导致之前线程使用的i值也被修改
4、temp=pthread_create(&thread2,NULL,printnum,NULL);
printnum线程需要保证number限制执行完之后才能执行,否则统计输出的统计不对
‘柒’ linux c现在主要应用在什么领域
1、嵌入式有一部分是做驱动、移植,这些很多芯片厂商或大型的公司在做——自己的芯片,自己的方案,自己的驱动。采用这些方案的公司可以在这些基础上添加自己的程序——算是应用层的了。
至于前途,要自己去实践才知道了。
2、基于linux的开源项目,那是相当的多。去sourceforge上看看吧。
3、linux下c编程无非就涉及那几个大的方面,当然,实际情况中需要认真深入研究,每个公司每个部门每个职位用到的知识不太相同。不过一些基本的知识是必备的。
‘捌’ 基于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 c 内核 是做什么的
Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds当时在Usenet新闻组comp.os.minix所登载的贴子,这份着名的贴子标志着Linux计划的正式开始。
在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
目录 [隐藏]
1 架构
2 可移植性
3 专利权
4 参见
5 外部资源
[编辑]架构
今天Linux是一个一体化内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(molarize)的形式设置,并在系统运行期间可直接装载或卸载。
Linux不是微内核(microkernel)架构的事实曾经引起了Linus Torvalds与Andy Tanenbaum之间一场着名的争论。在这里可以看到当时争论的内容。
[编辑]可移植性
尽管Linus Torvalds的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。从掌上电脑iPaq到巨型电脑IBM S/390,甚至于微软出品的游戏机XBOX都可以看到Linux内核的踪迹。Linux也是IBM超级计算机Blue Gene的操作系统。
Linux目前可以在以下结构上运行:
Acorn:Archimedes,A5000和RiscPC系列
康柏:Alpha
惠普:PA-RISC
IA64:英特尔Itanium个人电脑
IBM的S/390和AS/400
英特尔80386及之后的兼容产品:80386, 80486和整个奔腾系列;AMD Athlon, Duron, Thunderbird; Cyrix系列。对英特尔8086, 8088, 80186, 80188和80280芯片的支持正在开发中。
Mips
摩托罗拉68020及以上: 新的Amigas, 一些苹果电脑
PowerPC:所有较新的苹果电脑
SPARC和UltraSPARC:升阳微系统的工作站
Hitachi SuperH: SEGA Dreamcast
索尼公司: PlayStation 2
微软公司: Xbox
ARM系列
[编辑]专利权
原先Linus Torvalds将Linux置于一个禁止任何商业行为的条例之下,但之后改用GNU通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码。
Linus Torvalds曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。