- 浏览: 46209 次
- 性别:
- 来自: 威海
最新评论
-
shenjichao2009:
哎,我现在遇到问题,请指教。我的QQ是:897948924,请 ...
g++ 编译的小问题 -
XLLLQ:
楼上理解有问题 本来是一个东西
linux 文件描述符 进程 -
gift5168xf:
最近因为忙很少上javaeye了。但是看到了你这篇文章我不得不 ...
linux 文件描述符 进程
文章列表
今天想在linux下连接mysql, 在官网上下了三个rpm文件,
MySQL-client-community-5.1.46-1.rhel5.i386.rpm
MySQL-server-community-5.1.46-1.rhel5.i386.rpm
MySQL-devel-community-5.1.46-1.rhel5.i386.rpm(开发需要)
下载地址在:
http://dev.mysql.com/downloads/mysql/
可是在网上找了段连接数据库的代码,编辑后,怎么也通不过。
说:undefined reference ...
最近在Linux学习编程,不知道怎么调试。上网看了一下,也有好多例子。
下面给大家推荐一下比较简单明了,易上手的例子,帮你了解各个命令的使用 。
链接 http://blog.sina.com.cn/s/blog_4c8158170100a4m3.html
今天看qmail源代码的时候,有这句话,fd_move(1, pim[0]);
然后自己写了个程序,怎么运行也不正确。
看下面的代码:
if ( (close(1))==-1)
{
printf("close error!\n");
return -1;
}
else
{
printf("right\n");
}
结果,什么也不输出,看了半天,想起来了
对于标准的输出,对应的文件描述符是1呀,相当于我把标准输出给关闭了,怎么能有输出呢。
我有一个test_client.c文件,里面使用了C库自带的函数gets,可是当我编译时,出现这个warning,
test_client.c:(.text+0x128):warning:the 'gets' function is dangerouse and should not be used.
出现这个警告,在网上搜一下,会有好多答案,但我还是啰嗦一下吧!
#include <stdio.h>
main()
{
char buff[2];
gets(buff);
printf("%s\n", buff)
...
在用source insight 查看源源代码的时候,出现 parse too complex.可能解决方法不一样,针对我这个工程下,我是这么解决的,当然了,大家也可以看一下它的帮助.
针对我这个,应该是对于有些部分,类似于这种的,解析不了.
void temp_oserr() { out("Z\
System resources temporarily unavailable. (#4.3.0)\n"); zerodie(); }
void temp_noconn() { out("Z\
Sorry, I wasn't able to establish ...
可能在linux下做开发,难免都会涉及到进程吧!
当然,linux产生新进程的方法很多,我说一个最原始的,管道吧.
首先我的linux水平是很菜鸟的,几乎没什么基础.
当我看linux通过pipe()通信时,感觉很奇怪.
int main(void)
{
pid_t pid;
int pi[2];
pipe(pi); //创建管道
if ((pid=fork())==0)//子进程
{....}
}
fork产生新进程时,会复制父进程的变量,所以在子进程中,也相当于有pi[2],这样一个数组,这个数组就对就着管道的两端,和 ...
今天在看qmail 源代码的时候,有关进程和文件描述符的地方,有点不懂,在网上小查了一下,浅显的样子应该是这样.
文件描述符,录属于进程.对于不同的进程,文件描述符是相互独立的,所以在不同的进程中,可以用相同的文件描述符来指向不同的文件或者管道之类的.
下面是在unix 环境高级编程的话:
对于内核而言 ,所有打开文件都由文件描述符引用.文件描述符是一个非负整数.当打开一个现存文件或创建一个新文件时,内核向
进程
返回一个文件描述符.当读,写一个文件时,用open或create返回的文件描述符标识该文件,将其作为参数传送给read或write.
按照惯例,UNIX ...
最近想在Linux下学习编程,但是有点感觉没头绪,不像在windows下有 msdn这种帮助文档,不过有的帮助信息还是可是查的
尤其是在阅读别人源代码的时候.
这个网址大家可以看看,我觉得挺有帮助的呀.
标准C 库函数:
http://www.cplusplus.com
linux C 库函数
http://man.chinaunix.net/develop/c&c++/linux_c/default.htm
另外推荐一下阅读源代码的工具.source insight3
这个软件到官方网站上下载就行了,然后在网上再找一个序列号就行.
...
以前老以为,函数的声明与定义,样子必须一致.今天看了一个源代码,发现可以不这样.
比如:
在str.h中有如下代码
#ifndef STR_H
#define STR_H
int str_start();
#endif
str.c中
#include "str.h"
int str_start(char *s, char *t)/* s t 相等返回 1, 否则返回0 */
{
char x;
for (;;) {
x = *t++;
if (!x) return 1;
if (x != *s++) r ...
今天在网上搜了,关于安装的有好多.不过搜到的这篇文章,对我最实用,希望对你也实用.
我是一个完全的linux新手呀.
我安的是RHEL5.3,是在虚拟机下安装的,所依赖的软件都在镜像文件的Server目录下
系统默认安装时并没有安装编译环境,也就是说GCC也没有装进去。
[size=large][/size]
所幸的是RHEL的光盘上的Server目录里已经包含了gcc和其所依赖的软件
开始安装:按顺序安装以下包就可以完成GCC的安装了
找出下列软件,并安按照顺序安装即可。
rpm -ivh kernel-headers-2.6.18-128.el5.i386.rpm
rp ...