小编Fra*_*lea的帖子

C:Exec/fork> Defunct进程

我想使用fork> exec过程创建许多子进程.许多过程都以非常快的速度结束(不到两分钟,有些甚至更早).

我的第一个问题是,我将生成的进程放入后台

./spawnbot > logging.txt
[CTRL+Z]
bg 1
disown
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在我不再看到任何spawnbot的消息,他们直接进入logging.txt.然而,每当创建一个新的孩子时,我再次在我的控制台中看到关于那个孩子的所有信息..我现在想要用它自己的管道启动每个孩子 - 是否有更好的方法让孩子们在他们的输出消息全部发布安慰?我应该将它重定向到/ dev/null还是用C中的一些标志完成?

其次,所有的孩子都没有真正被杀.我的ps -ef中有很多进程.我该怎么办?我该怎么做

c fork exec defunct

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

绝对与相对路径

如果我使用绝对路径,我无法将整个目录移动到新位置.如果我使用相对路径,我无法将单个文件移动到新位置.

这里有什么解决方案?你是否设置了一个包含根路径的配置文件并从那里开始?或者你有一个规则:永远不要移动文件?

我在一些项目中看到人们使用dirname(FILE).有意义的是,我的意思是,为什么不简单地将它留下来,因为dirname无论如何都是相对的(取决于文件所在的位置)?

php relative-path absolute-path

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

MySQL:在表格中添加30天的值

我正在尝试对表中的值使用ADDDATE函数.

UPDATE credit SET addOns=ADDDATE(addOns, INTERVAL 30)
Run Code Online (Sandbox Code Playgroud)

addOns是我存储日期时间的地方.为什么我不能添加30天?

我也试过了

UPDATE credit SET addOns=ADDDATE(SELECT addOns FROM credit, INTERVAL 30)
Run Code Online (Sandbox Code Playgroud)

mysql datetime

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

C:程序退出时执行某些操作

在C中,如果我的应用程序意外结束,我可以在此之前调用函数吗?我正在向数据库(processRunning = 1)写入一个标志,以阻止其他应用程序启动类似的进程.当应用程序结束时,它不会改变该标志.

c exit

9
推荐指数
2
解决办法
2028
查看次数

MYSQL:DECIMAL,逗号后的精度为10位数

在MySQL中,我将DECIMAL字段设置为10,10.但是,每当我输入一个新值时,它会显示0.9999999999.我需要更改以接受逗号后的任何数字,精度为10位数?由于某种原因,它确实与10,6一起使用.

PS:我想插入汇率.

mysql decimal

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

在C项目中使用C++文件

出于好奇:有没有办法在C项目中使用C++文件?对于文件,我的意思是能够从头文件和库访问函数,并在您自己的项目中使用它们来解决已经解决的问题.

c c++

7
推荐指数
3
解决办法
2815
查看次数

CSS中无序列表中的文本缩进

我有一个无序的HTML列表,并使用CSS来设置所有内容.当文本有多行时,它在项目符号点之前开始.有没有办法让它在子弹点位置后开始?

在此输入图像描述

css list styling unordered

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

C:从函数返回字符串

我有一个返回字符串的函数:

const *char getMyPassword()
{
    return "mysecretpassword";
}
Run Code Online (Sandbox Code Playgroud)

好吧,它工作得很好,但我发现,如果我在Unix系统上运行"字符串",它会显示在列表中..不好.

替换它的最简单方法是什么?该函数位于库中,我希望保持灵活性.我现在开始在函数内进行mallocing,字符串中的字符串消失了.但是,我什么时候可以再次释放它?

char * getMyPassword()
{
unsigned char arr[] = { 'p', 'a', 's', 's', 'w', 'o', 'r' , 'd', '\0' };
char *return_arr = malloc(sizeof(arr));
strcpy(return_arr, arr);
return return_arr;

}
Run Code Online (Sandbox Code Playgroud)

如果我以前是malloc并传递一个指针,那么我怎么能知道这个大小,因为密码大小只在函数中知道?

作为一个计划BI可以通过一个巨大的阵列,但这似乎不是很优雅.我该怎么做呢?

编辑:我添加了strcpy(return_arr,arr).我实际上在原始代码中有它,但在这里忘了它.

c string

6
推荐指数
1
解决办法
6588
查看次数

C警告:函数返回局部变量的地址

下面的函数采用argv [0]参数,该参数包含应用程序的调用路径,并替换最后一位,直到它使用我想要生成的新应用程序的名称命名为"/",该应用程序位于同一文件夹中.

BTW:我正在声明一个全局argv变量,因此该函数可以访问它,因为我不想在每个函数调用中传递信息.

当我编译我的代码时,一切似乎都有效,但我收到了上述警告.

我知道我正在声明变量,并且只要函数返回它就会被销毁.

作为初学C程序员,我想知道解决这个问题的最优雅/最简单的方法是什么?

我应该将指针传递给函数或malloc一些内存吗?

char *returnFullPath()
{
    char pathToApp[strlen(argv[0])+1];
    strcpy(pathToApp, argv[0]);
    int path_length = strlen(argv[0]);

    while (pathToApp[path_length] != '/')
    {
        path_length--;
    }

    if (path_length > 2)
        pathToApp[path_length+1] = '\0';
    else
        pathToApp[0] = '\0';

    // length of getcwd + length of pathtoapp + 1 for zero plus 6 for "bidbot"
    char bidbotPath[strlen(getcwd(NULL,0)) + strlen(pathToApp) + 1 + 6];

    sprintf(bidbotPath, "%s/%sbidbot", getcwd(NULL,0), pathToApp);

    return bidbotPath;
}
Run Code Online (Sandbox Code Playgroud)

c malloc pointers

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

在编译的应用程序中隐藏密码/密钥

在我的C应用程序中,我有一个解密密钥,用于解密数据库中的集合(用户名/密码).目前,我只是宣布它

char * key = "$$$secretSampleDecryptionKey$$$";
Run Code Online (Sandbox Code Playgroud)

在该行之后不久,我准备SQL语句,然后从DB中进行选择.我的问题是,如果有人要调试我编译的应用程序或解组它,他们真的会看到密钥吗?我该怎么做才能将它们隐藏起来?

编辑:

正如Mark和Aaron指出的那样,我可以简单地使用Linux/Unix字符串命令

strings nameOfApplication
Run Code Online (Sandbox Code Playgroud)

打印出我的应用程序中的所有字符串,包括"秘密"密钥.

编辑2:

该应用程序在我的服务器上运行,数据库存储加密的敏感客户数据.我以为我是安全的,因为没有文本文件中的密钥供所有人阅读,而是编译它.

c cryptography

5
推荐指数
1
解决办法
4351
查看次数