小编Dan*_*ego的帖子

正则表达式 - 只匹配一次单词

案件:

  1. ehello再见hellot你好再见
  2. ehello再见你好,再见

我想匹配第1行(只有'你好'一次!)不想匹配第2行(包含'hello'不止一次)

尝试使用消极的向前看后面,什么不是......没有任何真正的成功..

regex regex-negation

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

如何在没有find的情况下在linux shell脚本中根据日期查找和删除文件?

请注意,我不能在目标环境中使用"找到"

我需要在linux shell脚本中删除超过7天的所有文件.就像是:

FILES=./path/to/dir
for f in $FILES
do
  echo "Processing $f file..."
  # take action on each file. $f store current file name
  # perhaps stat each file to get the last modified date and then delete files with date older than today -7 days.

done
Run Code Online (Sandbox Code Playgroud)

我可以用'stat'来做这件事吗?我试图用

find *.gz -mtime +7 -delete
Run Code Online (Sandbox Code Playgroud)

但发现我不能在目标系统上使用find(没有cron用户的权限,这不能更改).目标系统是Redhat Enterprise.

文件名的格式如下:

gzip>/mnt/target03/rest-of-path/web/backups/DATABASENAME_ date "+%Y-%m-%d".gz

linux bash shell

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

为什么调用大尺寸的mmap()不会失败?

我尝试用来mmap()操纵虚拟内存.我想保留并提交一个内存区域.我测试了这段代码:

const unsigned long gygabyte = 1024 * 1024 * 1024;
const unsigned long gygabyteCount = 2;
const unsigned long maxCapacity = gygabyteCount * gygabyte;

int main()
{
    char* pMemory;

    pMemory = (char*)mmap(NULL, maxCapacity, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    if ( mprotect(pMemory, maxCapacity, PROT_READ | PROT_WRITE) != 0 )
    {
        cout << "Memory Allocation has failed" << endl;
    }
    usleep(-1);

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

我从一个终端运行了我的程序的几个副本(比如说6个).我没有看到任何一个"内存分配失败".我正在运行64位Ubuntu,内存为4GB.谁能跟我说点什么呢?

c c++ linux memory-management mmap

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

将C/C++变量存储在处理器缓存中而不是系统内存中

在运行Linux的Intel x86平台上,在C/C++中,如何告诉操作系统和硬件在L1/L2缓存中存储值(例如uint32),而不是在系统内存中?例如,假设出于安全性或性能原因,我不想在DRAM中存储32位密钥(32位无符号整数),而是希望仅将其存储在处理器的缓存中.我怎样才能做到这一点?我在Intel Xeon处理器上使用Fedora 16(Linux 3.1和gcc 4.6.2).

非常感谢您的帮助!

c caching cache-control

6
推荐指数
3
解决办法
8382
查看次数

冗余Linux内核系统调用

我目前正在开发一个项目,它挂钩到各种系统调用并将内容写入日志,具体取决于调用的是哪一个.因此,例如,当我更改文件的权限时,我会在跟踪旧权限和新权限的日志文件中写一个小条目.但是,我在确定我应该注意的位置时遇到了一些麻烦.对于上面的例子,strace告诉我"chmod"命令使用系统调用sys_fchmodat().但是,还有一个sys_chmod()和一个sys_fchmod().

我确信内核开发人员知道他们在做什么,但我想知道:所有这些(看似)冗余系统调用的重点是什么,是否有关于哪些用于什么的规则?(即"at"系统调用或以"f"为前缀的那些意味着做某些特定的事情?)

linux kernel system-calls

5
推荐指数
2
解决办法
673
查看次数

从Linux内核中的路径获取inode

我目前正在尝试在内核函数中获取给定路径名的inode.我所有的都是完整的路径名.我尝试过这样的尝试:

user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);
Run Code Online (Sandbox Code Playgroud)

但是,在给定的路径中的dentry无效,似乎结果.然后我想也许尝试stat()并从中获取inode数.但是,这只给了我一个数字,而不是结构inode.我不知道如何在不抓取现有inode并遍历整个inode列表的情况下将inode编号转换为inode.我甚至不知道这是否有效.但我当然不想这样做.

有没有简单的方法从内核中的char*pathname获取struct inode?

linux kernel

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

字符串操作:计算"字符串与其后缀的相似性"

对于两个字符串A和B,我们将字符串的相似性定义为两个字符串共有的最长前缀的长度.例如,字符串"abc"和"abd"的相似性是2,而字符串"aaa"和"aaab"的相似性是3.

问题是给出一个算法来计算字符串S与每个后缀的相似之和.例如,让字符串为:ababaa.然后,该字符串的后缀ababaa,babaa,abaa,baa,aaa.每个这些字符串与所述串的的相似之处ababaa6,0,3,0,1,1,分别.答案是这样的6 + 0 + 3 + 0 + 1 + 1 = 11.

string algorithm

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

全局偏移表结构

全局偏移表(ELF)的结构是什么样的。我想了解动态链接。任何人都可以告诉我们数据结构是什么样子的吗?我不知何故从未在网上找到过它。

linux compiler-construction kernel elf

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

C中的客户端服务器程序

我编写了一个简单的客户端服务器程序,其中服务器接受来自客户端的消息并打印其详细信息(硬编码为我的分配).我最初在Linux(Fedora)机器上写过这个,它工作得非常好.但是当我尝试在我的mac上编译服务器代码时,它不起作用.

这是编译后的消息:

Undefined symbols for architecture x86_64:
  "_error", referenced from:
      _main in cc3O1167.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

c

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

IP地址和端口号是否可以唯一地标识进程ID?

IP地址和端口号是否可以唯一地标识进程ID?

我正在寻找一种方法来获取相应的进程ID,给定一个IP地址和一个端口号,但我不确定这些ip/port对是否可以唯一地识别一个pid.

c c++ sockets udp tcp

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