Archive for the ‘GNU/linux’ Category

Page 2 of 3

linux进程可执行文件的绝对路径

这种情况很少遇到,我们需要一个运行中进程的绝对路径,可惜的是glibc中或者系统调用中我都没有找到类似的函数。但是linux绝对不会不给你这个机会的,那就是proc文件系统了。在proc文件系统中那些数字都是运行中的进程,进入一个文件名为数字的文件夹以后,我们就可以发现以下类似文件目录结构。

[cyher@cyher ~]$ ls /proc/3355/
attr             cpuset   io        mountinfo   pagemap      smaps    task
auxv             cwd      latency   mounts      personality  stack    wchan
cgroup           environ  limits    mountstats  root         stat
clear_refs       exe      loginuid  net         sched        statm
cmdline          fd       maps      oom_adj     schedstat    status
coredump_filter  fdinfo   mem       oom_score   sessionid    syscall

这里就是一个进程所有的信息了大名鼎鼎的ps命令就是读取这里的内容解析出信息的,这里是ps的官方网站 http://procps.sourceforge.net/

那好了,就用这里给的信息来解析出执行文件的绝对路径吧

/*
 * =====================================================================================
 *
 *       Filename:  get_exe_path.c
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  2009年09月23日 17时07分17秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  cyher (), cyher.net@gmail.com
 *        Company:  cyher.net
 *
 * =====================================================================================
 */
 
#include
#include
#include
#define BUF 128
 
int main(int agrc, char **argv) {
    char buf[BUF];
    char proc[BUF];
    char *p;
 
    sprintf(proc, "/proc/%d/exe", atoi(argv[1]));
    readlink(proc,buf, BUF); /*proc/pid/exe 是一个链接,用readlink读*/
    p = strchr(buf,'('); /*读出的路径后面有可能会有 (deleted)字样,删去*/
    if (p != NULL) {
        p--;
        *p = '\0';
    }
    puts(buf);
}

这样就能读取出绝对路径了,不过你首先要知道pid啊 呵呵。

自己曾经作过的小实验

youku链接:http://v.youku.com/v_show/id_XMTAyODE5MjEy.html

自己的嵌入式学习经验, 想不到别人给拍成视频了

见笑了….呵呵. 说的太年轻气盛了….别拍阿,我知错了.现在需要低调…呵呵.

unix-center.net需要帮助

我的邮件里有这么样子一封信http://www.unix-center.net/?p=133

看完以后,心中不知道有什么感觉,就去捐了100元。这时候有些人选择了,忽略,不信任,忘记等。。。确实这是一个自由的捐款,在自愿的情况下。但是我还是想帮助unix-center.net这个项目以及项目负责人,因为我收益于这个项目,我也知道,那些想学习linux或者unix的同学也一样,有些人有钱,有些人没钱,但是如果觉得这个项目帮助了自己或者能够帮助别人,那就请你出自己的一份力。因为在中国有这样的资源实属不多,所以我同项目负责人一样想让这个项目延续下去。说实话,这是我的一个个人信仰,也许也是这个项目负责人的信仰,帮助想要学习linux和unix系统的人。我现在只能做这些了,希望我们国家的开源和计算机事业都有源源不断的人材。

最后一句话,信任是不需要证据的,有了证据你再信任,信任就没有必要存在了。
—–送给那些不相信确有其事的人

变质的奶酪,linux!

      我个人是一个linux爱好者,这种爱好,并不是让linux给我带来更丰厚的薪水,纯纯的爱好和喜欢.记得在大学的时候,有为牛人说linux不是给所有人准备的,直到现在我还是这样认为的,但是现在的情况呢?

      网络上总是在把ubuntu和win7比,我怎么就是不能理解呢?现在ubuntu怎么了?难道想和windows一样了么?现在的关于linux的中文资讯,有多少是关于ubuntu的?我的意思是关于桌面的(包括Fedrora和SUSE),真的有意义么?google的andorid也来,linux马上就要变质了,这是一种及其个人的说法!linux在我心中是一种具有反抗,自由精神的一种载体,但是现在,它”翅膀硬了”,当在利益面前这种精神能不能保持呢?我说这些仅仅是一个技术爱好者的思维,可能一个商业运作者觉的这是一种顺理成章的事情.

      首先我觉得,linux虽然是以GPL协议发布的,但是我总是觉得用linux赚钱还是有点邪恶的,包括”不作恶的”google.在我心中,linux应该是低调的,高效的,很有技术性的,linus开发linux的初衷就是爱好或者说是一种信仰,但是看看现在中国的linux使用者,他们中有些人会说:”看!我不用windows 我用linux 我用的是ubuntu,我能用linux看rmvb,能下载BT!”这些应该值得欣喜的,但是这些不用这样高调的,这是理所应当的.在我心中一直存在一种想法就是:”windows能干的事linux也能干,windows能干的事linux干不了的事就是不需要干的事!”当然在现在这种娱乐大众,炒作的风气之下,windows能干的事,linux原来干不了,现在能干了就是值得欣喜的事….我感到很可悲.对于linux甚至unix精神来说这就是一种蜕变!

      话说娱乐大众,windows和mac做的都是很不错的(一个同学的论点),linux原来不会娱乐大众,但是现在会了,ubuntu先会的接着就是Fedora,SUSE.linux在桌面领域那一位数的占有律说明,娱乐的还不够好!大众需要的是娱乐,不是愚弄!既然不擅长,就别跟风!最后落得个愚弄大众,自己得不偿失.

     我还是在想linux kernel的事,明白人都知道, 就是指kernel,并不是什么ubuntu,Fedora.对于商业的运作我真的不想考虑他们的感觉,我就是站在一个爱好者的角度或者说是传教士的角色,对初学linux的人和应用linux的人说:”对于内核,我们真应该好好看看了!” 中国人也是很强的!强!在我的理解并不是赚多少钱,看你能给人类带来多少贡献.至少,我们的大学里面,别整天学计算机基础的时候别老是教同学们一些word什么的,让一些非计算机专业的人只知道windows这个东西,让他们知道有linux,让他们知道自由,也让他们知道什么叫做版权!

     就说到这里吧,喝得有点多…..不好意思,文章很乱,思路也很奇怪,算了就这样了,我喜欢linux就是了,看看我今天吃了变质的奶酪以后,明天会不会拉肚子….

About

You are currently browsing the Cyher.NET weblog archives for the GNU/linux category.

分类目录

music