• 5552阅读
  • 2回复

Linux 进程命令 execl(...)?????????????????????? [复制链接]

上一主题 下一主题
离线rockyluo
 

只看楼主 倒序阅读 楼主  发表于: 2008-10-14
— 本帖被 XChinux 执行加亮操作(2008-10-15) —
现在以及通过QListbox列出了一个文件夹下的文件名
现在想做删除工作
例如,选择一个Item,点击按钮就删除该文件
想问的是,界面代码中“删除文件”的命令是怎么样的?
删除Item没问题,关键怎么删除一个真正的文件?

此问题已解决,请转1楼
[ 此贴被rockyluo在2008-10-14 15:48重新编辑 ]
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线rockyluo

只看该作者 1楼 发表于: 2008-10-14
if( fork( ) == 0)
        execl( "bin/rm" , "rm" , "-f" , "/home/rr/1.txt",( char *)0  );
else
          sleep( 1 );
这样实现了,但还有个问题一直通不过,上面那个 1.txt  想通过自动来读取
-------------------------------------------------------------------------------------------------
我是这样来实现的:
QString s = lb->currentText( ) ;        // lb为一个QListBox ,currentText()来读取当前选择项
if( fork( ) == 0)
      {
            printf( "1\n" );      // 1被输出
            execl( "bin/rm" , "rm" , "-f" ,  "/home/rr/" + s  ,( char *)0  ); 
                      //  此处改为s,对文件的操作无反映
            printf( "2\n" );      // 2没被输出
        }
..........
编译时出现:
warning: cannot pass objects of non-POD type 'class QString' through '...'; call will abort at runtime
的警告
运行时,终端输出了1,而rm -f  /home/rr/1.txt 命令并没生效,1.txt依然还在文件夹中,2没有输出。
程序也会继续运行,没死掉。
敢问,这个execl()应该怎么用?
[ 此贴被rockyluo在2008-10-15 08:01重新编辑 ]
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线rockyluo

只看该作者 2楼 发表于: 2008-10-14
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
快速回复
限100 字节
 
上一个 下一个