标签: linux

在Go中设置进程名称(由`ps`看到)

以下(正确地)不起作用:

package main

import (
        "os"
        "time"
)

func main() {
        os.Args[0] = "custom name"
        println("sleeping")
        time.Sleep(1000 * time.Second)
        println("done")
}
Run Code Online (Sandbox Code Playgroud)

有些语言提供了将进程名称设置为内置功能的特性(例如,在Ruby中,它只是分配给它 $0)或作为第三方库(Python).

我正在寻找一种至少适用于Linux的解决方案.

linux process go

8
推荐指数
2
解决办法
4578
查看次数

os.fork()会在写入时使用copy还是在Python中执行父进程的完整副本?

我想将一个相当大的数据结构加载到一个进程中然后分叉,希望减少总内存消耗.会以os.fork这种方式工作还是复制Linux(RHEL)中的所有父进程?

python linux fork

8
推荐指数
1
解决办法
2148
查看次数

基于Linux的PHP安装连接到MsSQL Server

通过Linux上的PHP连接到远程Microsoft SQL Server的最佳方法是什么.

PHP只能在Linux机器上运行.

我一直在拖网寻找最简单的答案.

php linux sql-server

8
推荐指数
3
解决办法
4万
查看次数

从/ proc/pid/stat中检索当前堆栈指针

我正在使用gdb执行一个基本的C程序.我在开始时有一个断点main().运行代码后,gdb按预期在main()处中断.现在,如果我检查堆栈指针寄存器(rsp),我看到了

0x7fffffffe170: 0x00000000. 
Run Code Online (Sandbox Code Playgroud)

当我使用cat /proc/17232/stat | cut -d" " -f29/proc(其中17232是这个过程的pid)检索相同的信息时,我看到:

140737488347112 (which in hex is: 0x7fffffffdfe8). 
Run Code Online (Sandbox Code Playgroud)

为什么我们看到来自gdb的当前堆栈指针的不同值.而且,为什么gdb将rsp的内容显示为NULL(0x00000000)?

谢谢.

c linux operating-system

8
推荐指数
1
解决办法
595
查看次数

在GNU/Linux上生成lnk文件以传输到windows

我将首先解释我的目标,以避免"XY问题"的误解.我希望能够生成一个文件(在Linux上),当下载到Windows机器并双击时,将打开一个(ms办公室,但它应该无关紧要)IIc文件与已知路径(在本地窗口上)机器)由服务器预设.

如果我在lnk文件中包含我想要打开的文件的路径(以及它存储在其中的卷的其他细节等),我似乎可以尝试做的事情.我首先检查了lnk文件格式规范试图在python脚本中生成文件,但这不是我的小蛋糕(我从来没有编写代码来处理二进制文件).此外,我希望抛弃这种格式的许多功能,但我仍然需要弄清楚它们的标志/字段/长度/终止等.

然后我在我的〜/ .wine文件夹中偶然发现了winedump实用程序和WINE创建的一些.lnk文件.WINE代码库中必须有一些能够生成lnk文件的函数,但我找不到它.它在哪里?它是像win的mklink这样的命令吗?如果不是(我猜它是某个功能,如果它不是)你可以指向我,以便我可以写一个包装命令吗?

或者有没有可以编写lnk文件并在GNU/Linux上运行的库?

linux windows lnk

8
推荐指数
1
解决办法
2718
查看次数

使用ubuntu 12.04进行bash选项卡完成问题

我遇到了tab-completion的问题,我无法解决.具体来说,每当我尝试选项卡完成目录时,完成的目录名称后面会显示一个空格而不是正斜杠以完成其余的目录.例如

~$ python ~/sof
Run Code Online (Sandbox Code Playgroud)

tab-completed to

~$ python ~/software<space>
Run Code Online (Sandbox Code Playgroud)

代替

~$ python ~/software/
Run Code Online (Sandbox Code Playgroud)

有趣的是,这不会发生,cd而是与它所做的其他事情一起发生.

linux bash tab-completion

8
推荐指数
1
解决办法
1655
查看次数

将毫秒转换为timespec - GNU Porting

我想将毫秒转换为GNU(GCC)linux的timespec结构.我试过以下代码.

  timespec GetTimeSpecValue(unsigned long milisec)
  {
    struct timespec req;
    //long sec = (milisecondtime /1000);
    time_t sec = (time_t)(milisec/1000);
    req->tv_sec = sec;
    req->tv_nsec = 0;
    return req;
  }
Run Code Online (Sandbox Code Playgroud)

运行此代码会给我以下错误.

在'GetTimeSpecValue'之前预期'=',',',';','asm'或'__attribute__'

我还在代码中包含了time.h文件.

c linux datetime gnu timespec

8
推荐指数
1
解决办法
3万
查看次数

尝试仅删除非ASCII字符

我试图操纵文本文件并从文本中删除非ASCII字符.我不想删除该行.我只想删除有问题的字符.我试图让以下表达式工作:

sed '/[\x80-\xFF]/d'

regex linux sed tr

8
推荐指数
1
解决办法
2万
查看次数

/ usr/bin/ld:找不到-lglut

我在尝试安装mp4box并运行make lib命令时遇到以下错误.

/usr/bin/ld: cannot find -lglut
collect2: ld returned 1 exit status
make[1]: *** [libgpac.so] Error 1
make[1]: Leaving directory `/gpac/src'
make: *** [lib] Error 2
Run Code Online (Sandbox Code Playgroud)

在我检查库后,我得到的是:

lrwxrwxrwx  1 root root      13 Feb 15 18:25 libGL.so -> mesa/libGL.so
-rw-r--r--  1 root root  905952 Aug 23  2011 libGLU.a
lrwxrwxrwx  1 root root      11 Feb 15 18:26 libGLU.so -> libGLU.so.1
lrwxrwxrwx  1 root root      20 Feb 15 18:25 libGLU.so.1 -> libGLU.so.1.3.071000
-rw-r--r--  1 root root  453272 Aug 23  2011 libGLU.so.1.3.071000
baseem@348588:/usr/lib$ ln …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu

8
推荐指数
1
解决办法
1万
查看次数

gdb/ddd程序收到信号SIGILL

我在Linux中使用c ++编写了一个非常简单的程序,它使用cURL库从http(基本上开发了一个http客户端请求)下载来自某个网​​站的图像.http://curl.haxx.se/libcurl/c/allfuncs.html

#define CURL_STATICLIB
#include <stdio.h>
#include <stdlib.h>
#include </usr/include/curl/curl.h>
#include </usr/include/curl/stdcheaders.h>
#include </usr/include/curl/easy.h>

size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
    size_t written = fwrite(ptr, size, nmemb, stream);
    return written;
}

int main(void) {
    CURL *curl;
    FILE *fp;
    CURLcode res;

    char *url = "http://www.example.com/test_img.png"; 
    char outfilename[FILENAME_MAX] = "/home/c++_proj/output/web_req_img.png";
    curl = curl_easy_init();
    if (curl) {
        fp = fopen(outfilename,"wb");
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);
        /* always cleanup */
        curl_easy_cleanup(curl);
        fclose(fp);
    } …
Run Code Online (Sandbox Code Playgroud)

linux gdb libcurl ddd-debugger raspberry-pi

8
推荐指数
2
解决办法
1万
查看次数